%To print the format properly, copy %the following 11-lines job and %substitute the semicolon token %(=escape char) for `semi-col'. (2x) % ---Kees--- %\input blue.fmt %\hfuzz10pt %\title{File: blue.fmt} %\issue{Version 1.0} %\beginscript %\thisverbatim={\catcode`\`semicol'=0 % \catcode`\!=12 % \catcode`\|=12 % \input blue.fmt} %\beginverbatim %`semi-col'endverbatim %\endscript %begin%%%%%%%%%%%%%%%general description% %Version Aug 1994 ;nonum %This file blue.fmt accompanies %`BLUe's Format' EuroTeX'94 %Available from CTAN: %blue.fmt, fmt.art, plus lit.dat, pic.dat. %Author: C.G. van der Laan % Hunzeweg 57, 9893PB % Garnwerd, The Netherlands % 31 (0)5941 1525 % cgl@rc.service.rug.nl %Purpose: general independent plain fmt. %It is composed of %-- abbreviations, from tugboat.cmn %-- manmac.tex (+customization macros) %-- ppt.tex, my preprint proposal, from % TUGboat BLUes %-- miscellaneous additions %-- \eqalign family with multi alignment % point, from Math into BLUes %-- icon macros via LaTeX's line fonts %-- btable.tex, my bordered table macros, % from Table Diversions %-- vrb.tex (my verbatim mode suite), from % BLUe's verbatim %-- macros for cross-referencing, from % BLUe's Cross-Referencing %-- macros for bibliography handling, from % BLUe's Bibliography %-- gkppic.tex a subset of gkpmac.tex for % LaTeX's picture environment %-- trs.tex for head transparencies %-- crs.tex for crosswords via plain %The problem is to keep the constituent %collections unaltered. %For each set a table of contents has %been added to locate macros. %The reason for putting it all in one file %is to handle conflicting items and to %facilitate fast loading, read make it a %format. %Note. In order to process this file %verbatim the semicolon has been reserved %as escape character. %The files have not been ordered alphabe- %tically, due to the hierarchy. %end%%%%%%%%%%%%%%%%%general description% \catcode`\@=11 %begin%%%%%%%%%%%%%%%%%%%%%abbreviations% %;numvrb %Abbreviations borrowed from tugboat.cmn. \newcount\TestCount \def\smc{\tensmc} \def\SMC{\ninerm} \font\tensmc=cmcsc10 \def\AllTeX{(\La)\TeX} \def\AMS{American Mathematical Society} \def\AmS{{\the\textfont2 A}\kern-.1667em% \lower.5ex\hbox{\the\textfont2 M}% \kern-.125em{\the\textfont2 S}} \def\AmSTeX{\AmS-\TeX} \def\AmSLaTeX{\AmS-\LaTeX}%Addition \def\aw{A\kern.1em-W} \def\AW{Addison\kern.1em-\penalty\z@ \hskip\z@skip Wesley} \def\BibTeX{{\rm B\kern-.05em{\smc i% \kern-.025emb}\kern-.08em\TeX}} \def\CandT{{\sl Computers \& Typesetting}} \def\DVItoVDU{DVIto\kern-.12em VDU} \def\ISBN{{\SMC ISBN} } % Japanese TeX \def\JTeX{\leavevmode\hbox{\lower.5ex% \hbox{J}\kern-.18em\TeX}} \def\JoT{{\sl The Joy of \TeX}} \def\LAMSTeX{L\raise.42ex\hbox{\kern -.3em\the\scriptfont2 A}\kern-.2em% \lower.376ex\hbox{\the\textfont2 M}% \kern-.125em{\the\textfont2 S}-\TeX} \let\LAmsTeX=\LAMSTeX%addition \def\La{\TestCount=\the\fam \leavevmode L\raise.42ex\hbox{$\fam\TestCount \scriptstyle\kern-.3em A$}} \def\LaTeX{\La\kern-.15em\TeX} % for Robert McGaffey \def\Mc{\setbox\TestBox=\hbox{M}M\vbox to\ht\TestBox{\hbox{c}\vfil}} \font\manual=logo10 % font used for the METAFONT logo, etc. \def\MF{{\manual META}\-{\manual FONT}} \def\mf{{\smc Metafont}} \def\MFB{{\sl The \slMF book}} % multilingual (INRS) TeX \def\mtex{T\kern-.1667em\lower.5ex% \hbox{\^E}\kern-.125emX} \def\pcMF{\leavevmode\raise.5ex\hbox {p\kern-.3ptc}MF} \def\PCTeX{PC\thinspace\TeX} \def\pcTeX{\leavevmode\raise.5ex\hbox {p\kern-.3ptc}\TeX} \def\Pas{Pascal} \def\PiC{P\kern-.12em\lower.5ex% \hbox{I}\kern-.075emC} \def\PiCTeX{\PiC\kern-.11em\TeX} \def\plain{{\tt plain}} \def\POBox{P.\thinspace O.\ Box } \def\POBoxTUG{\POBox\unskip\ 21041, Santa Barbara, CA93121-1041, USA} \def\PS{{Post\-Script}} \def\SC{Steering Committee} \def\SGML{{\SMC SGML}} \def\SliTeX{{\rm S\kern-.06em{\smc l\kern-.035emi}\kern-.06em\TeX}} \def\slMF{\MF} %Use \font\manualsl=logosl10 instead, %if it's available, for %\def\slMF{{\manualsl META}\-{\manualsl % FONT}} % Atari ST (Klaus Guntermann) \def\stTeX{{\smc st\rm\kern-0.13em\TeX}} \def\TANGLE{{\tt TANGLE}} \def\TB{{\sl The \TeX book}} \def\TP{{\sl \TeX\/}: {\sl The Program\/}} \def\TeX{T\hbox{\kern-.1667em% \lower.424ex\hbox{E}\kern-.125emX}} \def\TeXhax{\TeX hax} % Don Hosek \def\TeXMaG{\TeX M\kern-.1667em% \lower.5ex\hbox{A}\kern-.2267emG} \def\TeXtures{{\it Textures}} \let\Textures=\TeXtures \def\TeXXeT{\TeX--X\kern-.125em% \lower.5ex\hbox{E}\kern-.1667emT} \def\ttn{{\sl TTN}} \def\TTN{{\sl \TeX{} and TUG News}} \def\tubfont{\sl} \def\TUB{{\tubfont TUGboat\/}} \def\TUG{\TeX\ \UG} \def\UG{Users Group} \def\UNIX{{\SMC UNIX}} \def\VAX{\leavevmode\hbox{V\kern-.12em% A\kern-.1em X}} \def\VorTeX{V\kern-2.7pt\lower.5ex% \hbox{O\kern-1.4pt R}\kern-2.6pt\TeX} \def\XeT{\leavevmode\hbox{X\kern-.125em% \lower.424ex\hbox{E}\kern-.1667emT}} \def\WEB{{\tt WEB}} \def\WEAVE{{\tt WEAVE}} %;nonum %Although not necessary because of %alphabetical ordering, I supplied %also % %Table of contents abbreviations TUG %\AllTeX..........................7 %\AMS.............................9 %\AmS, \AmSTeX...................14 %\aw.............................16 %\AW.............................17 %\BibTeX.....................20, 21 %\CandT......................23, 24 %\DVItoVDU.......................26 %\ISBN...........................28 %\JTeX.......................31, 32 %\JoT............................34 %\LAMSTeX....................36--39 %\La.........................41--43 %\LaTeX..........................44 %\Mc.........................47--48 %\MF.............................52 %\mf.............................53 %\MFB........................54, 55 %\mtex.......................57, 58 %\pcMF.......................60, 61 %\PCTeX..........................62 %\pcTeX......................63, 64 %\Pas............................66 %\PiCTeX.........................70 %\plain..........................72 %\POBox..........................74 %\POBoxTUG...................75--76 %\PS.............................78 %\SC.............................80 %\SGML...........................82 %\SliTeX.....................84, 85 %\slMF......................%90, 91 %\stTeX..........................94 %\TANGLE.........................96 %\TB.............................98 %\TP.............................99 %\TeX......................102, 103 %\TeXhax........................105 %\TeXMaG...................108, 109 %\TeXtures......................111 %\TeXXeT...................114, 115 %\ttn...........................117 %\TTN...........................118 %\TUB...........................121 %\TUG...........................123 %\UG............................125 %\UNIX..........................127 %\VAX......................129, 130 %\VorTeX...................132, 133 %\XeT......................135, 136 %\WEB...........................138 %\WEAVE.........................139 %end%%%%%%%%%%%%%%%%%%%%%%%abbreviations% %begin%%%%%%%%%%%%%%%%%%%%%%%%%%%%manmac% %;numvrb %manmac.tex cgl@rc.service.rug.nl %Knuth's macros for formatting The TeXbook %and The METAfont book. %\catcode`@=11 % \font\tentex=cmtex10 \font\inchhigh=cminch \font\titlefont=cmssdc10 at 40pt \font\ninerm=cmr9 \font\eightrm=cmr8 \font\sixrm=cmr6 \font\ninei=cmmi9 \font\eighti=cmmi8 \font\sixi=cmmi6 \skewchar\ninei='177 \skewchar\eighti='177 \skewchar\sixi='177 \font\ninesy=cmsy9 \font\eightsy=cmsy8 \font\sixsy=cmsy6 \skewchar\ninesy='60 \skewchar\eightsy='60 \skewchar\sixsy='60 \font\eightss=cmssq8 \font\eightssi=cmssqi8 \font\ninebf=cmbx9 \font\eightbf=cmbx8 \font\sixbf=cmbx6 \font\ninett=cmtt9 \font\eighttt=cmtt8 \hyphenchar\tentt=-1 % inhibit hyphenation % in typewriter type \hyphenchar\ninett=-1 \hyphenchar\eighttt=-1 \font\ninesl=cmsl9 \font\eightsl=cmsl8 \font\nineit=cmti9 \font\eightit=cmti8 \font\tenu=cmu10 % unslanted text italic \font\magnifiedfiverm=cmr5 at 10pt %Next two not available on my system %\font\manual=manfnt % font used for the % METAFONT logo, etc. %\font\cmman=cmman % font used for %miscellaneous Computer Modern variations \newskip\ttglue \def\tenpoint{\def\rm{\fam0\tenrm}% \textfont0=\tenrm\scriptfont0=\sevenrm \scriptscriptfont0=\fiverm \textfont1=\teni \scriptfont1=\seveni \scriptscriptfont1=\fivei \textfont2=\tensy\scriptfont2=\sevensy \scriptscriptfont2=\fivesy \textfont3=\tenex\scriptfont3=\tenex \scriptscriptfont3=\tenex \def\it{\fam\itfam\tenit}% \textfont\itfam=\tenit \def\sl{\fam\slfam\tensl}% \textfont\slfam=\tensl \def\bf{\fam\bffam\tenbf}% \textfont\bffam=\tenbf \scriptfont\bffam=\sevenbf \scriptscriptfont\bffam=\fivebf \def\tt{\fam\ttfam\tentt}% \textfont\ttfam=\tentt \tt \ttglue=.5em plus.25em minus.15em \normalbaselineskip=12pt \def\MF{{\manual META}\-{\manual FONT}}% \let\sc=\eightrm \let\big=\tenbig \setbox\strutbox=\hbox{\vrule height8.5pt depth3.5pt width\z@}% \normalbaselines\rm} \def\ninepoint{\def\rm{\fam0\ninerm}% \textfont0=\ninerm\scriptfont0=\sixrm \scriptscriptfont0=\fiverm \textfont1=\ninei\scriptfont1=\sixi \scriptscriptfont1=\fivei \textfont2=\ninesy\scriptfont2=\sixsy \scriptscriptfont2=\fivesy \textfont3=\tenex\scriptfont3=\tenex \scriptscriptfont3=\tenex \def\it{\fam\itfam\nineit}% \textfont\itfam=\nineit \def\sl{\fam\slfam\ninesl}% \textfont\slfam=\ninesl \def\bf{\fam\bffam\ninebf}% \textfont\bffam=\ninebf \scriptfont\bffam=\sixbf \scriptscriptfont\bffam=\fivebf \def\tt{\fam\ttfam\ninett}% \textfont\ttfam=\ninett \tt \ttglue=.5em plus.25em minus.15em \normalbaselineskip=11pt \def\MF{{\manual hijk}\-{\manual lmnj}}% \let\sc=\sevenrm \let\big=\ninebig \setbox\strutbox=\hbox{\vrule height8pt depth3pt width\z@}% \normalbaselines\rm} \def\eightpoint{\def\rm{\fam0\eightrm}% \textfont0=\eightrm \scriptfont0=\sixrm \scriptscriptfont0=\fiverm \textfont1=\eighti \scriptfont1=\sixi \scriptscriptfont1=\fivei \textfont2=\eightsy \scriptfont2=\sixsy \scriptscriptfont2=\fivesy \textfont3=\tenex \scriptfont3=\tenex \scriptscriptfont3=\tenex \def\it{\fam\itfam\eightit}% \textfont\itfam=\eightit \def\sl{\fam\slfam\eightsl}% \textfont\slfam=\eightsl \def\bf{\fam\bffam\eightbf}% \textfont\bffam=\eightbf \scriptfont\bffam=\sixbf \scriptscriptfont\bffam=\fivebf \def\tt{\fam\ttfam\eighttt}% \textfont\ttfam=\eighttt \tt \ttglue=.5em plus.25em minus.15em \normalbaselineskip=9pt \def\MF{{\manual opqr}\-{\manual stuq}}% \let\sc=\sixrm \let\big=\eightbig \setbox\strutbox=\hbox{\vrule height7pt depth2pt width\z@}% \normalbaselines\rm} \def\tenmath{\tenpoint\fam-1 } % use after $ % in ninepoint sections \def\tenbig#1{{\hbox{$\left#1\vbox to8.5pt{}% \right.\n@space$}}} \def\ninebig#1{{\hbox{$\textfont0=\tenrm \textfont2=\tensy \left#1\vbox to7.25pt{}\right.\n@space$}}} \def\eightbig#1{{\hbox{$\textfont0=\ninerm \textfont2=\ninesy \left#1\vbox to6.5pt{}\right.\n@space$}}} % Page layout \newdimen\manmachsize\newdimen\manmacvsize \newdimen\pagewidth \newdimen\pageheight \newdimen\manmacparindent\newdimen\ruleht%Cornrules \manmachsize29pc\manmacvsize44pc\maxdepth2.2pt \manmacparindent=3pc \ruleht=.5pt \pagewidth\manmachsize\pageheight\manmacvsize \abovedisplayskip=6pt plus 3pt minus 1pt \belowdisplayskip=6pt plus 3pt minus 1pt \abovedisplayshortskip=0pt plus 3pt \belowdisplayshortskip=4pt plus 3pt \newinsert\footins \def\manmacfootnote#1{\edef\@sf{\spacefactor \the\spacefactor}#1\@sf \insert\footins\bgroup\eightpoint \interlinepenalty100 \let\par=\endgraf \leftskip=\z@skip \rightskip=\z@skip \splittopskip=10pt plus 1pt minus 1pt \floatingpenalty=20000 \smallskip\item{#1}\bgroup\strut \aftergroup\@foot\let\next} \skip\footins=12pt plus 2pt minus 4pt % space added when footnote is present \count\footins=1000 % footnote magnification factor (1 to 1) \dimen\footins=30pc % maximum footnotes per page \newinsert\margin \dimen\margin=\maxdimen \count\margin=0 \skip\margin=0pt % marginal inserts take up no space \newif\iftitle \def\titlepage{\global\titletrue} % for pages without headlines \def\rhead{} % contains the running headline \def\leftheadline{\hbox to \pagewidth{% \vbox to 10pt{}% strut to position the % baseline \llap{\tenbf\folio\kern1pc}% folio to % left of text \tenit\rhead\hfil% running head flush left \def\rightheadline{\hbox to \pagewidth{% \vbox to 10pt{}% strut to position the % baseline \hfil\tenit\rhead\/% running head flush % right \rlap{\kern1pc\tenbf\folio}% folio to % right of text \def\onepageout#1{\shipout\vbox{ % here we % define one page of output \offinterlineskip % butt the boxes together \vbox to 3pc{ % this part goes on top of % the 44pc pages \iftitle % the next is used for title pages \global\titlefalse % reset the titlepage % switch \setcornerrules % for camera alignment \else\ifodd\pageno \rightheadline\else \leftheadline\fi\fi \vfill} % this completes the \vbox to 3pc \vbox to \pageheight{ \ifvoid\margin\else%marginal info is present \rlap{\kern31pc\vbox to\z@{\kern4pt% \box\margin \vss}}\fi #1 % now insert the main information \ifvoid\footins\else%footnote info is present \vskip\skip\footins \kern-3pt \hrule height\ruleht width\pagewidth \kern-\ruleht \kern3pt \unvbox\footins\fi \boxmaxdepth=\maxdepth } % this completes the \vbox to \pageheight }\advancepageno} \def\setcornerrules{\hbox to \pagewidth{% \vrule width 1pc height\ruleht \hfil \vrule width 1pc} \hbox to \pagewidth{\llap{\sevenrm(page \folio)\kern1pc}% \vrule height1pc width\ruleht depth\z@ \hfil \vrule width\ruleht depth\z@}} \def\manmacoutput{\onepageout{\unvbox255}} \newbox\partialpage \def\begindoublecolumns{\begingroup \output={\global\setbox\partialpage= \vbox{\unvbox255\bigskip}} \eject \output={\doublecolumnout}% \hsize=9cm \vsize=51cm}%cgl mods \def\enddoublecolumns{\output= {\balancecolumns}\eject \endgroup \pagegoal=\vsize} \def\doublecolumnout{\splittopskip=\topskip \splitmaxdepth=\maxdepth \dimen@=25cm \advance\dimen@ by-\ht\partialpage \setbox0=\vsplit255 to\dimen@ \setbox2=\vsplit255 to\dimen@ \onepageout\pagesofar \unvbox255 \penalty\outputpenalty} \def\pagesofar{\unvbox\partialpage \wd0=\hsize \wd2=\hsize \hbox to \pagewidth{\box0\hfil\box2}} \def\balancecolumns{\setbox0=\vbox{\unvbox255} \dimen@=\ht0 \advance\dimen@ by\topskip \advance\dimen@ by-\baselineskip \divide\dimen@ by2 \splittopskip=\topskip {\vbadness=10000 \loop \global\setbox3=\copy0 \global\setbox1=\vsplit3 to\dimen@ \ifdim\ht3>\dimen@ \global\advance\dimen@ by1pt \repeat} \setbox0=\vbox to\dimen@{\unvbox1} \setbox2=\vbox to\dimen@{\unvbox3} \pagesofar} % To produce only a subset of pages, % put the page numbers on separate % lines in a file called pages.tex \let\Shipout=\shipout \newread\pages \newcount\nextpage \openin\pages=pages \def\getnextpage{\ifeof\pages\else {\endlinechar=-1\read\pages to\next \ifx\next\empty % in this case we should % have eof now \else\global\nextpage=\next\fi}\fi} \ifeof\pages\else\message{OK, I'll ship only the requested pages}\getnextpage\fi \def\shipout{\ifeof\pages \let\next=\Shipout\else \ifnum\pageno=\nextpage \getnextpage\let\next=\Shipout \else\let\next=\Tosspage\fi\fi \next} \newbox\garbage \def\Tosspage{\deadcycles=0\setbox\garbage=} % Chapter formatting % The preface and table of contents are % formatted in place, not here \newcount\exno % for the number of exercises % in the current chapter \newcount\subsecno % for the number of % subsections in the current chapter \def\manmacbeginchapter#1 #2#3. #4\par{% \global\exno=0\subsecno=0\def\chapno{#2#3} \ifodd\pageno \errmessage{You had too much text on that last page, I'm backing up} \advance\pageno by-1 \fi \titlepage \def\\{ } % \\'s in the title will be % treated as spaces \message{#1 #2#3:} % show the chapter % title on the terminal \def\MF{{\manual 89:%insert semi-col <=>:}} % slant the logo \xdef\rhead{#1 #2#3: #4\unskip} {\def\TeX{T\kern-.2em\lower.5ex% \hbox{E}\kern-.06em X} \def\MF{{\vbox to30pt{}\manual ()*+,-.*}} \def\\{#3} \ifx\empty\\ \rightline{\inchhigh #2\kern-.04em} \else\rightline{\inchhigh #2\kern-.06em% #3\kern-.04em}% \fi \vskip 1.75pc \baselineskip 36pt \lineskiplimit \titlelsl \lineskip 12pt \let\\=\cr%now the \\'s are line dividers \halign{\line{\titlefont\hfil##}\\#4% \unskip\\}\vfill\eject} % output the % chapter title page \tenpoint\noindent\ignorespaces}% the first %paragraph of a chapter is not indented \newdimen\titlelsl \titlelsl=1pt \outer\def\manmacendchapter{\ifodd\pageno \else\vfill\eject\null\fi \begingroup\bigskip\vfill % beginning of % the quotes \def\eject{\endgroup\eject} \def\par{\ifhmode\/\endgraf\fi}\obeylines \def\TeX{T\kern-.2em\lower.5ex\hbox{E}% \kern-.000em X} \def\MF{{\manual opqr}\-{\manual stuq}} \eightpoint \let\tt=\ninett \baselineskip 10pt \parfillskip \z@ \interlinepenalty 10000 \leftskip \z@ plus 40pc minus \parindent \let\rm=\eightss \let\sl=\eightssi \everypar{\sl}} \def\manmacauthor#1(#2){\smallskip \noindent\rm--- #1\unskip\enspace(#2)} \def\dbend{{\manual\char127}} % dangerous bend sign \def\d@nger{\medbreak\begingroup \clubpenalty=10000 \def\par{\endgraf\endgroup\medbreak} \noindent\hang\hangafter=-2 \hbox to0pt{\hskip-\hangindent\dbend \hfill}\ninepoint} \outer\def\danger{\d@nger} \def\dd@nger{\medbreak\begingroup \clubpenalty=10000 \def\par{\endgraf\endgroup\medbreak} \noindent\hang\hangafter=-2 \hbox to0pt{\hskip-\hangindent\dbend \kern1pt\dbend\hfill}\ninepoint} \outer\def\ddanger{\dd@nger} \def\enddanger{\endgraf\endgroup} % omits % the \medbreak \outer\def\subsection#1. {\medbreak \advance\subsecno by 1 \noindent {\it \the\subsecno.\enspace#1.\enspace}} \def\ansno#1.#2:{\medbreak\noindent \hbox to\parindent{\bf\hss#1.#2.\enspace} \ignorespaces} % Composition macros \hyphenation{man-u-script man-u-scripts ap-pen-dix xscaled} %\def\AmSTeX{$\cal A\kern-.1667em\lower % .5ex\hbox{$\cal M$}\kern-.075em S$-\TeX} \def\bull{\vrule height .9ex width .8ex% depth -.1ex } % square bullet \def\SS{{\it SS}} % scriptscript style \def\|{\leavevmode\hbox{\tt\char`\|}} % vertical line \def\dn{\leavevmode\hbox{\tt\char'14}} % downward arrow \def\up{\leavevmode\hbox{\tt\char'13}} % upward arrow \def\]{\leavevmode\hbox{\tt\char`\ }} % visible space \def\pt{$\,${\rm pt}} % units of points, % in math formulas \def\em{$\,${\rm em}} % units of ems, % in math formulas \def\<#1>{\leavevmode\hbox{$\langle$#1% \/$\rangle$}} % syntactic quantity \def\oct#1{\hbox{\rm\'{}\kern-.2em\it #1\/\kern.05em}} % octal constant \def\hex#1{\hbox{\rm\H{}\tt#1}} % hexadecimal constant \def\cstok#1{\leavevmode\thinspace\hbox{% \vrule\vtop{\vbox{\hrule\kern1pt\hbox{% \vphantom{\tt/}\thinspace{\tt#1}% \thinspace}}\kern1pt\hrule}\vrule}% \thinspace} % control sequence token {\obeyspaces\gdef {\ }} \def\parbreak{\hfil\break\indent\strut} \def\stretch{\nobreak\hskip0pt plus2pt\relax} % macros for non-centered displays \outer\def\begindisplay{\obeylines \startdisplay}\let\display\begindisplay {\obeylines\gdef\startdisplay#1 {\catcode`\^^M=5$$#1\halign\bgroup\indent ##\hfil&&\qquad##\hfil\cr}} \outer\def\enddisplay{\crcr\egroup$$} % (the following \begin...\end-type % macros do not appear in Appendix E) % macros for demonstrating math constructions \outer\def\beginmathdemo{ $$\advance\baselineskip by2pt \halign\bgroup\indent\hbox to 160pt{##\hfil}& $##$\hfil\cr\noalign{\vskip-2pt} }\let\mathdemo\beginmathdemo \outer\def\begindisplaymathdemo{ $$\advance\baselineskip by15pt \halign\bgroup\indent\hbox to 160pt{##\hfil }$\displaystyle{##}$\hfil\cr \noalign{\vskip-15pt} \outer\def\beginlongmathdemo{ $$\advance\baselineskip by2pt \halign\bgroup\indent\hbox to 210pt{##\hfil }$##$\hfil\cr\noalign{\vskip-2pt} \outer\def\beginlongdisplaymathdemo{ $$\advance\baselineskip by15pt \halign\bgroup\indent\hbox to 210pt{##\hfil }$\displaystyle{##}$\hfil\cr \noalign{\vskip-15pt} \outer\def\endmathdemo{\egroup$$} % macros for font tables \def\oddline#1{\cr \noalign{\nointerlineskip} \multispan{19}\hrulefill& \setbox0=\hbox{\lower 2.3pt\hbox{% \hex{#1x}}}\smash{\box0}\cr \noalign{\nointerlineskip}} \def\evenline{\cr\noalign{\hrule}} \def\chartstrut{\lower4.5pt\vbox to14pt{}} \def\beginchart#1{$$\postdisplaypenalty=-10000 \global\count@=0 #1 \halign to\hsize\bgroup \chartstrut##\tabskip0pt plus10pt& &\hfil##\hfil&\vrule##\cr \lower6.5pt\null &&&\oct0&&\oct1&&\oct2&&\oct3&&\oct4&& \oct5&&\oct6&&\oct7&\evenline} \def\endchart{\raise11.5pt\null&&&\hex 8&& \hex 9&&\hex A&&\hex B&&\hex C&&\hex D&& \hex E&&\hex F&\cr\egroup$$} \def\:{\setbox0=\hbox{\char\count@}% \ifdim\ht0>7.5pt\reposition \else\ifdim\dp0>2.5pt\reposition\fi\fi \box0\global\advance\count@ by1 } \def\reposition{\setbox0=\hbox{$\vcenter {\kern2pt\box0\kern2pt}$}} \def\normalchart{% &\oct{00x}&&\:&&\:&&\:&&\:&&\:&&\:&&\:&& \:&&\oddline0 &\oct{01x}&&\:&&\:&&\:&&\:&&\:&&\:&&\:&& \:&\evenline &\oct{02x}&&\:&&\:&&\:&&\:&&\:&&\:&&\:&& \:&&\oddline1 &\oct{03x}&&\:&&\:&&\:&&\:&&\:&&\:&&\:&& \:&\evenline &\oct{04x}&&\:&&\:&&\:&&\:&&\:&&\:&&\:&& \:&&\oddline2 &\oct{05x}&&\:&&\:&&\:&&\:&&\:&&\:&&\:&& \:&\evenline &\oct{06x}&&\:&&\:&&\:&&\:&&\:&&\:&&\:&& \:&&\oddline3 &\oct{07x}&&\:&&\:&&\:&&\:&&\:&&\:&&\:&& \:&\evenline &\oct{10x}&&\:&&\:&&\:&&\:&&\:&&\:&&\:&& \:&&\oddline4 &\oct{11x}&&\:&&\:&&\:&&\:&&\:&&\:&&\:&& \:&\evenline &\oct{12x}&&\:&&\:&&\:&&\:&&\:&&\:&&\:&& \:&&\oddline5 &\oct{13x}&&\:&&\:&&\:&&\:&&\:&&\:&&\:&& \:&\evenline &\oct{14x}&&\:&&\:&&\:&&\:&&\:&&\:&&\:&& \:&&\oddline6 &\oct{15x}&&\:&&\:&&\:&&\:&&\:&&\:&&\:&& \:&\evenline &\oct{16x}&&\:&&\:&&\:&&\:&&\:&&\:&&\:&& \:&&\oddline7 &\oct{17x}&&\:&&\:&&\:&&\:&&\:&&\:&&\:&& \:&\evenline} % (now Appendix E resumes again) % macros for verbatim scanning \chardef\other=12 \def\ttverbatim{\begingroup \catcode`\\=\other \catcode`\{=\other \catcode`\}=\other \catcode`\$=\other \catcode`\&=\other \catcode`\#=\other \catcode`\%=\other \catcode`\~=\other \catcode`\_=\other \catcode`\^=\other \obeyspaces \obeylines \tt} \outer\def\begintt{$$\let\par=\endgraf \ttverbatim \parskip=\z@ \catcode`\|=0 \rightskip-5pc \ttfinish} {\catcode`\|=0 |catcode`|\=\other % | is temporary escape character |obeylines % end of line is active |gdef|ttfinish#1^^M#2\endtt{#1|vbox{#2}% |endgroup$$}} \catcode`\|=\active {\obeylines \gdef|{\ttverbatim \spaceskip=\ttglue \let^^M=\ \let|=\endgroup}} % macros for syntax rules (again, not in % Appendix E) \def\[#1]{\silenttrue\xref|#1|\thinspace {\tt#1}\thinspace} % keyword in syntax \def\beginsyntax{\endgraf\nobreak\medskip \begingroup \catcode`<=13 \catcode`[=13 \let\par=\endsyntaxline \obeylines} \def\endsyntaxline{\futurelet\next \syntaxswitch} \def\syntaxswitch{\ifx\next\<\let\next= \syntaxrule\else \ifx\next\endsyntax\let\next=\endgroup \else\let\next=\continuerule \fi\fi \next \def\continuerule{\hfil\break\indent\qquad} \def\endsyntax{\medbreak\noindent} {\catcode`<=13 \catcode`[=13 \global\let<=\< \global\let[=\[ \gdef\syntaxrule<#1>{\endgraf\indent \silentfalse\xref%Mod cgl \<#1>}} \def\is{\ $\longrightarrow$ } \def\alt{\ $\vert$ } % macros to demarcate lines quoted from % TeX source files \def\beginlines{\par\begingroup\nobreak \medskip\parindent\z@ \obeylines \hrule\kern1pt\nobreak \everypar{\strut}} \def\endlines{\kern1pt\hrule\endgroup \medbreak\noindent} \def\weakendlines{\kern1pt\hrule\endgroup \medskip\noindent} \def\finalendlines{\kern1pt\hrule\endgroup \medbreak} \outer\def\exercise{\medbreak \global\advance\exno by 1 \noindent\llap{\manual\char'170 \rm\kern.15em}% triangle in margin {\ninebf EXERCISE \bf\chapno.\the\exno}\par \nobreak\noindent} \def\dexercise{\global\advance\exno by 1 \llap{\manual\char'170 \rm\kern.15em}% triangle in indented space {\eightbf EXERCISE \bf\chapno.\the\exno}\hfil \break} \outer\def\dangerexercise{\d@nger\dexercise} \outer\def\ddangerexercise{\dd@nger\dexercise} \newwrite\ans \immediate\openout\ans=answers % file for answers to exercises \outer\def\answer{\par\medbreak \immediate\write\ans{} \immediate\write\ans{\string\ansno \chapno.\the\exno:}\copytoblankline} \def\copytoblankline{\begingroup\setupcopy \copyans} \def\setupcopy{\def\do##1{\catcode`##1= \other}\dospecials \catcode`\|=\other \obeylines} {\obeylines \gdef\copyans#1 {\def\next{#1}% \ifx\next\empty\let\next=\endgroup \else\immediate\write\ans{\next}% \let\next=\copyans \fi\next}} % Macros for drawing figures (not in % Appendix E) \def\hidehrule#1#2{\kern-#1\hrule height#1 depth#2 \kern-#2 } \def\hidevrule#1#2{\kern-#1{\dimen0=#1 \advance\dimen0 by#2\vrule width\dimen0}% \kern-#2 } % \makeblankbox puts rules at the edges of % a blank box whose dimensions are those % of \box0 (assuming nonnegative wd,ht,dp) % #1 is rule thickness outside, % #2 is rule thickness inside \def\makeblankbox#1#2{\hbox{\lower\dp0 \vbox{\hidehrule{#1}{#2}% \kern-#1% overlap the rules at the corners \hbox to\wd0{\hidevrule{#1}{#2}% \raise\ht0\vbox to #1{}% set the vrule height \lower\dp0\vtop to #1{}% set the vrule depth \hfil\hidevrule{#2}{#1}}% \kern-#1\hidehrule{#2}{#1}}}} \def\maketypebox{\makeblankbox{0pt}{1pt}} \def\makelightbox{\makeblankbox{.2pt}{.2pt}} % \box\bigdot is a null box with a bullet % at its reference point \newbox\bigdot \newbox\smalldot \setbox0=\hbox{$\vcenter{}$} % \ht0 is the axis height \setbox1=\hbox to\z@{$\hss\bullet\hss$} % bullet is centered on the axis \setbox\bigdot=\vbox to\z@{\kern-\ht1 \kern\ht0 \box1 \vss} \setbox1=\hbox to\z@{$\hss\cdot\hss$} % cdot is centered on the axis \setbox\smalldot=\vbox to\z@{\kern-\ht1 \kern\ht0 \box1 \vss} % \arrows makes things like <--- text ---> \def\arrows#1#2{% #1=width, #2=text {\setbox0=\hbox{$\mkern-2mu\mathord -\mkern-2mu$} \hbox to #1{\kern-.055556em$\leftarrow \mkern-6mu$\cleaders\copy0\hfil \kern.4em #2\kern.4em\cleaders\copy0\hfil $\mkern-6mu\rightarrow$\kern-.055556em}}} % \samplebox makes the outline of a box, % with big dot at reference point \def\samplebox#1#2#3#4{% #1=ht, #2=dp, #3=wd, % #4=text {\setbox0=\vtop{\vbox to #1{\hbox to #3{} \vss}\nointerlineskip\vbox to #2{}} % now \box0 has the desired ht, dp, and wd \hbox{\copy\bigdot \vrule height.2pt depth.2pt width#3% \kern-#3\makelightbox\kern-#3% \raise#1\vbox{\hbox to #3{\hss#4\hss} \kern 3pt}}}} % \sampleglue makes glue between sample boxes \newdimen\varunit \varunit=\hsize \advance\varunit by-2\parindent \divide\varunit by 58 % illustrations in % Chapter 12 \def\sampleglue#1#2{% #1=width, #2=text \vtop{\hbox to #1{\xleaders\hbox to .5\varunit{\hss\copy\smalldot\hss}\hfil} \kern3pt \tabskip \z@ plus 1fil \halign to #1{\hfil##\cr#2\cr}}} % Indexing macros \newif\ifproofmode \proofmodetrue % this should be false when % making camera-ready copy \newwrite\inx \immediate\openout\inx=index % file for % index reminders \newif\ifsilent \def\specialhat{\ifmmode\def\next{^}\else \let\next=\beginxref\fi\next} \def\beginxref{\futurelet\next \beginxrefswitch} \def\beginxrefswitch{\ifx\next\specialhat \let\next=\silentxref\else \silentfalse\let\next=\xref\fi \next} \catcode`\^=\active \let ^=\specialhat \def\silentxref^{\silenttrue\xref} \def\marginstyle{\vrule height6pt depth2pt width\z@ \sevenrm} \chardef\bslash=`\\ \def\xref{\futurelet\next\xrefswitch} \def\xrefswitch{\begingroup \ifx\next|\aftergroup\vxref % case 1 or 2, |arg| or |\arg| \else\ifx\next\<\aftergroup\anglexref % case 3, "\" means angle brackets \else\aftergroup\normalxref \fi\fi\endgroup} % case 0, "{arg}" \def\vxref|{\catcode`\\=\active \futurelet\next\vxrefswitch} \def\vxrefswitch#1|{\catcode`\\=0 \ifx\next\empty\def\xreftype{2}% \def\next{{\tt\bslash\text}}% type 2, % |\arg| \else\def\xreftype{1}\def\next{% {\tt\text}}\fi % type 1, |arg| \edef\text{#1}\makexref} {\catcode`\|=0 \catcode`\\=\active |gdef\{}} \def\anglexref\<#1>{\def\xreftype{3}% \def\text{#1}\def\next{\<\text>}\makexref} \def\normalxref#1{\def\xreftype{0}% \def\text{#1}\let\next=\text\makexref} \def\makexref{\ifproofmode\insert\margin {\hbox{\marginstyle\text}}% \ifindexfile %Mod cgl oct 94 \xdef\writeit{\write\inx{\text\space!% \xreftype\space\noexpand\number\pageno.% }}\writeit \else\advance\inxcnt1 \ea\xdef\csname\the\inxcnt\endcsname {\text\space!\xreftype\space}% \mark{\the\inxcnt}% \fi\else\ifhmode\kern0pt\fi\fi \ifsilent\ignorespaces\else\next\fi} % the \insert (which is done in proofmode % only) suppresses hyphenation, so the % \kern\z@ is put in to give the same effect % in non-proofmode. % Internal cross references that may change \def\sesame{61} % page number for Sesame Street quote \def\bmiexno{20} % exercise number for bold math italic \def\punishexno{1} % exercise number for `punishment' \def\fracexno{6} % exercise number for `\frac' \def\vshippage{31} % error message from `\vship' \def\storypage{24} % listing of story.tex \def\metaT{4} % exercise number for T of METAFONT \def\xwhat{2} % exercise number for x3:=whatever \def\Xwhat{2} % exercise number for whatever itself \def\checkequals#1#2{\ifnum#1=#2\else \errmessage{Redefine \string#1 to be \the#2}\fi} %Things for The METAFONTbook only %(omitted) ;nonum %Contents manmac.tex % cgl@rc.service.rug.nl %Font definition ................7-58 %Size switching macros ........60-154 %Page layout (and OTR) .......156-282 %-parameters..................159-193 %-\manmacfootnote.............167-176 %-\margin (insert)............185-188 %-\titlepage......................191 %-\leftheadline...............195-201 %-\rightheadline..............202-209 %-\onepageout.................211-235 %-\setcornerrules.............237-243 %-\manmacoutput...................245 %-\begindoublecolumns.........248-253 %-\enddoublecolumns...........254-256 %-\doublecolumnout............258-264 %-\pagesofar..................265-267 %-\balancecolumns.............268-281 %Subset of pages..............283-304 %-\Shipout........................286 %-\getnextpage................289-295 %-\shipout....................297-301 %-\Tosspage.......................304 %Chapter formatting ..........306-393 %-\manmacbeginchapter.........315-344 %-\manmacendchapter...........348-363 %-\author....................365, 366 %-\dbend......................368-385 %-\subsection.................387-393 %Composition macros...........395-431 %-\AmSTeX....................399, 400 %-\bull......................401, 402 %-\SS.............................403 %-\vrt............................404 %-\dn........................406, 407 %-\up........................408, 409 %-\]..............................410 %-\pt........................413, 414 %-\em........................415, 416 %-\<#1>......................417, 418 %-\oct.......................419, 420 %-\hex............................421 %-\cstok......................423-427 %-\parbreak..................429, 430 %-\stretch........................431 %Macros for non-centered % displays..................433-439 %-\begindisplay..............434, 435 %-\startdisplay...............436-438 %-\enddisplay.....................440 %Macros for showing math % constructions.............441-466 %-\beginmathdemo..............444-448 %-\begindisplaymathdemo.......449-454 %-\beginlongmathdemo..........455-459 %-\beginlongdisplaymathdemo...460-465 %-\endmathdemo....................466 %Macros for font tables.......468-526 %-\oddline....................469-474 %-\evenline.......................475 %-\chartstrut.....................476 %-\beginchart.................477-484 %-\endchart...................485-487 %-\:..........................488-491 %-\reposition................492, 493 %-\normalchart................494-526 %Macros for verbatim scanning.529-555 %-\ttverbatim.................531-542 %-\begintt....................544-546 %-\ttfinish...................547-551 %Macros for syntax rules......557-579 %-\[#1]......................559, 560 %-\beginsyntax................561-563 %-\endsyntaxline.............564, 565 %-\syntaxswitch...............566-570 %-\continuerule...................572 %-\endsyntax......................573 %-<, [............................575 %-\syntaxrule................576, 577 %-\is.............................578 %-\alt............................579 %Macros to demarcate lines quoted % from \TeX{} source files..581-591 %-\beginlines................583, 585 %-\endlines..................586, 587 %-\weakendlines..............588, 589 %-\finalendlines.............590, 591 %Macros to mark up exercises % and answers...............593-624 %-\exercise..................593, 598 %-\dexercise..................599-603 %-\dangerexercise.................604 %-\ddangerexercise................605 %-\answer.....................610-613 %-\copytoblankline...........614, 615 %-\setupcopy..................616-618 %-\copyans....................619-624 %Macros for drawing figures...626-696 %-\hidehrule.................628, 629 %-\hidevrule..................630-632 %-\makeblankbox...............638-645 %-\maketypebbox...................646 %-\makelightbox...................647 %-\bigdot....................656, 657 %-\smalldot..................660, 661 %-\arrows.....................664-670 %-\samplebox..................674-683 %-\sampleglue.................691-696 %Indexing macros..............698-752 %-\ifproofmode, \ifsilent....698, 704 %-\inx............................701 %-\specialhat................706, 707 %-\beginxref.................708, 709 %-\beginxrefswitch............710-712 %-^...............................713 %-\silentxref.....................714 %-\marginstyle...............716, 717 %-\bslash.........................719 %-\xref...........................720 %-\xrefswitch.................721-727 %-\vxref.....................728, 729 %-\vxrefswitch................730-736 %-\anglexref.................738, 739 %-\normalxref................740, 741 %-\makexref...................742-754 %Internal cross-references that % may change................760-782 %Customization of \beginchapter and %\endchapter from Manmac BLUes. \outer\def\beginchapter#1 #2#3. #4\par{% \def\chapno{#2#3}\global\exno0 \subsecno0 \def\hl{\gdef\hl{\the\issue\hfil\it\rhead}} \headline{\hl} \def\\{ }\xdef\rhead{#4} \centerline{\titlefont #1 #2#3\quad #4} \bigskip\tenpoint\noindent\ignorespaces} \footline{\fiverm\rlap{\the\year}\hfil --\folio--\hfil\llap{\copyright cgl}} \outer\def\endchapter{\vfill\eject\vfill} %\output{\plainoutput} \hsize18cm \pagewidth\hsize \vsize25cm \pageheight\vsize %\issue{MAPS 93.1} %History of changes %1994 Table of contents added and % names of footnote and output % provided with unique prefix manmac. % Customization \beginchapter added. %1993 Adapted for twocolumn layout. %end%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%manmac% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %ppt.tex cgl@rc.service.rug.nl %;numvrb %Adapted TUGboat.sty, 2-column bias %\xcol is the column no within a page, %ranges from 1 to \maxcols (=1 or 2). \newcount\xcol \newcount\maxcols \newdimen\pagewd \newdimen\colwd \newdimen\intercolwd %\catcode`\@=11 % remove \outer \def\newbox{\alloc@4\box\chardef\insc@unt} \def\boxcs#1{\box\csname#1\endcsname} \def\setboxcs#1{\setbox\csname#1\endcsname} \def\newboxcs#1{\expandafter \newbox\csname#1\endcsname} \newboxcs{column1} \newboxcs{column2} \def\midpage#1{\vbox{\ifnum\xcol=\maxcols \the\headline\else\null\vskip\baselineskip \fi\kern2ex \vbox to\vsize{% \hbox to\pagewd{#1}\vss} \kern1ex \ifnum\xcol=\maxcols \the\footline\else\vskip4ex\fi}} \headline={\hbox to\pagewd{\sevenrm \the\issue\hfill{\it\the\title}}} \newtoks\pagenumber\pagenumber{\folio} \footline={\hbox to\pagewd{\fiverm \rlap{Draft \today}\hfill--\the\pagenumber --\hfill\llap{\copyright cgl}}} \def\today{\ifcase\month\or Jan\or Feb\or March\or April\or May\or June\or July\or Aug\or Sept\or Oct\or Nov\or Dec\fi \space\number\day, \number\year} \def\newcol{\endgraf\vfill\eject} \def\newpage{\vfill\eject \loop \ifnum\xcol>1 {\leavevmode\endgraf\vfill\eject} %\xcol is advanced in the output routine \repeat} % horizontal offset of column % from left edge of page \newdimen\coloffset \coloffset=\z@ \def\incrcoloffset{% \global\advance\coloffset\colwd \global\advance\coloffset\intercolwd} \output={\global\setboxcs{column\number\xcol}= \midpage{\kern\coloffset\pagebody\hfil} \incrcoloffset \ifnum\xcol=\maxcols \shipout\hbox{\global\xcol=\@ne \loop\rlap{\boxcs{column\number\xcol}}% \ifnum\xcol<\maxcols \global\advance\xcol\@ne \repeat \hbox to\pagewd{\hss}}% \global\advance\count0\@ne \global\coloffset\z@ \global\xcol=\@ne \else \global\advance\xcol\@ne \fi} %title, header and miscellaneous \newtoks\title\newtoks\subtitle \newtoks\author\newtoks\address \newtoks\netaddress\newtoks\issue \newtoks\thisscript\newtoks\everyscript \newtoks\prehead\newtoks\posthead \newtoks\presubhead\newtoks\postsubhead \newtoks\presubsubhead\newtoks\postsubsubhead \def\pasteupkeywords{\box\keywordsbox} \def\pasteupabstract{\box\abstractbox} \def\pasteupcontents{\unvbox\contentsbox} %;vrblin100 \def\beginscript{\lastscript \the\everyscript\begingroup \the\thisscript \hrule\kern2ex\noindent {\titlefont\the\title {\subtitlefont\the\subtitle}} \medskip\the\author \medskip\pasteupkeywords \medskip\pasteupabstract \medbreak\pasteupcontents\smallbreak} \def\endscript{\makesignature \xcol=\maxcols \vfil\eject\endgroup\tracingstats1 \stop\thisscript{}} \def\notlastscript{\global\let\stop\relax} \def\lastscript{\global\let\stop\end} \prehead{\vskip0pt plus5ex \penalty-250\vskip0pt plus1ex \bigskip\noindent} \posthead{\medskip\nobreak \noindent\ignorewhitespace} \def\beginhead{\the\prehead\bgroup \headfont} \def\endhead{\egroup\the\posthead} \presubhead{\vskip0pt plus2ex \penalty-100\vskip0pt plus1ex \medskip\vskip\parskip\noindent} \def\beginsubhead{\the\presubhead \bgroup\subheadfont} \def\endsubhead{\egroup} \presubsubhead{\vskip0pt plus5pt \penalty-50\vskip0pt plus1pt \smallskip\vskip\parskip} \def\beginsubsubhead{\the\presubsubhead \bgroup\subsubheadfont} \def\endsubsubhead{\egroup} %;vrblin150 \def\head#{\beginhead\bgroup\ag\endhead \afterassignment\ignorespaces \let\dummy=} \def\subhead#{\beginsubhead\bgroup\ag \endsubhead\afterassignment\ignorespaces \let\dummy=} \def\subsubhead#{\beginsubsubhead\bgroup \ag\endsubsubhead\let\dummy=} \def\script#{\beginscript\bgroup\ag\endscript \afterassignment\ignorespaces \let\dummy=} \long\def\ignorepars#1{\ifx\par#1\let\next\relax \else\let\next#1\sraperongi\fi\ignorepars} \long\def\sraperongi#1\ignorepars{\fi\next} {\catcode`\^=7 \gdef\ignorewhitespace{\begingroup %Due to Phil Taylor EuroTeX 94 \catcode`\ =9 %space \catcode`\^^I=9 %tab \catcode`\^^L=9 %f-feed \catcode`\^^M=9 %e-o-l \futurelet\dummy\endgroup}} %;vrblin200 \def\tubissue#1(#2){\TUB~#1, no.~#2} \def\\{\hfil\break} \def\makesignature{\medskip \rightline{\hbox to.5\hsize{\strut \llap{$\diamond$\quad}\the\author\hss}} \rightline{\vbox{\noindent \hsize=.5\hsize \the\address\endgraf\noindent \the\netaddress}}} % Defaults % %;vrblin250 \def\onecol{\maxcols=1 \hsize=16cm \pagewd=\hsize \colwd=\hsize \vsize=25cm \xcol=1 \hyphenchar\tentt='055 \hyphenchar\ninett='055 \hyphenchar\eighttt='055 \tolerance500 \hbadness=499 \hfuzz=4pt \def\twocol{\maxcols=2 \hsize=9cm\colwd=\hsize \intercolwd=.5cm \pagewd=18.5cm \vsize=25cm \xcol=1 \hyphenchar\tentt='055 \hyphenchar\ninett='055 \hyphenchar\eighttt='055 \tolerance500 \hbadness=499 \hfuzz=5pt \author{Kees van der Laan} \address{Hunzeweg 57, 9893PB\\ Garnwerd, The Netherlands} \netaddress{cgl@rc.service.rug.nl\\ 31 5941 1525} %\catcode`\@=12 \hoffset-1cm \voffset-1cm \parindent1pc \let\titlefont\bf \let\headfont\bf \let\subheadfont\bf \let\subsubheadfont\bf \let\subtitlefont\rm \twocol %\endinput %;nonum %Contents ppt cgl@rc.service.rug.nl %- OTR % \boxcs........................14 % \setboxcs.....................15 % \newboxcs.....................16 % \midpage...................21-28 % \headline..................30-31 % \footline..................34-36 % \pagenumber...................33 % \today.....................37-41 % \newcol.......................42 % \newpage...................44-49 % \incrcoloffset.............53-55 % \output....................57-72 %- Markup structures % \title, \subtitle.............75 % \author.......................76 % \address, \netaddress.........77 % \issue........................77 % \thisscript, \everyscript.....78 % \prehead, \posthead...........79 % \presubhead...................80 % \presubsubhead................81 % \pasteupkeywords..............82 % \pasteupabstract..............83 % \pasteupcontents..............84 % \beginscript.............101-110 % \endscript...............111-114 % \notlastscript...............115 % \lastscript..................116 % \prehead.................117-119 % \posthead................120-121 % \presubhead..............124-126 % \beginhead...............122-123 % \endhead.....................124 % \beginsubhead............127-128 % \endsubhead..................129 % \beginsubsubhead.........133-134 % \endsubsubhead...............135 % \script..................159-161 % \head....................151-153 % \subhead.................154-156 % \subsubhead..............157-158 % \ignorepars..............159-160 % \sraperongi..................161 % \ignorewhitespace........162-169 %- Miscellaneous % \tubissue....................201 % \\...........................202 % \makesignature...........203-209 %- Defaults % \onecol..................251-263 % \twocol..................265-277 %- Initializations 278-289 % \author......................278 % \address.................279-280 % \netaddress..............281-282 % \headfont....................286 % \subheadfont.................287 % \subsubheadfont..............288 % \parindent...................285 % \hoffset, \voffset...........284 %Split-off---inner level---are % - tugboat.cmn abbreviations % - size switching macros % - \beginquote...\endquote % - \bitem (essentially plain's \item) % - verbatim mode macros % - (bibliography macros, % \beginbtable...\endbtable, % ...) %Author: C.G van der Laan % Hunzeweg 57, 9893P % Garnwerd The Netherlands % cgl@rc.service.rug.nl, 05941-1525 %History of changes %July 1994 No parameter separators for % \head etc. % \beginscript, \endscript instead % of \article, \endarticle. % Token variables for \prehead % \posthead, \presubhead % \presubsubhead. %June 1994 Name changed into ppt.tex %May 94 \runhead and \runfoot changed % into \headline and \footline % compatible with plain. %March 94 Essential set up %end%%%%%%%%%%%%%%%%%%%%%%%%%%%%%ppt.tex% %begin%%%%%%%%%%%%%%%%%%%%%%%%%Additions% %Additions to ppt %Shorcuts ;numvrb \let\ea=\expandafter\let\nx=\noexpand \let\ag=\aftergroup \def\dash{--}\def\Dash{---} \newtoks\contentsname \newtoks\abstractname\newtoks\keywordsname \def\DeK{D\kern-.11em\lower.5ex\hbox {E}\kern-.1em K} %;vrblin=50 \def\tiny{\fiverm\baselineskip7pt\let\it \fivei\let\bf\fivebf}%\let\tt\fivett} %;vrblin=200 %\pagenumber{\folio} \newcount\fcnt \def\ftn{\global\advance\fcnt1 \footnote{${}^{\the\fcnt}$}} %\def\m{\par\hangindent\parindent % \textindent} %LaTeX things ;vrblin=250 %\def\\{\hfil\break} \def\cite#1{(#1)} \def\verb{} \def\em{\it} \def\cs#1{{\tt\char92#1}} %Some layout macros ;vrblin=300 \newbox\keywordsbox \keywordsname{Keywords} \def\beginkeywords{\setbox\keywordsbox \vbox\bgroup\subhead{\sevenbf \the\keywordsname: }\small} \def\endkeywords{\egroup} \def\keywords#{\beginkeywords\bgroup \aftergroup\endkeywords \afterassignment\ignorespaces \let\dummy=} \newbox\abstractbox \abstractname{Abstract} \def\beginabstract{\setbox\abstractbox \vbox\bgroup\centerline{\sevenbf \the\abstractname}\beginquote\small} \def\endabstract{\endquote\egroup} \def\abstract#{\beginabstract\bgroup \aftergroup\endabstract \afterassignment\ignorespaces \let\dummy=} \newbox\contentsbox \contentsname{Contents} \def\begincontents{\setbox\contentsbox \vbox\bgroup\small\noindent \the\contentsname\par\obeylines} \def\endcontents{\egroup} \def\contents#{\begincontents\bgroup \aftergroup\endcontents \afterassignment\ignorespaces \let\dummy=} \def\beginquote{\endgraf\bgroup\narrower \smallbreak\noindent} \def\endquote{\smallbreak\egroup\endgraf \noindent} \def\quote#{\beginquote\bgroup \aftergroup\endquote \afterassignment\ignorespaces \let\dummy=} \def\begincenter{\bgroup\smallskip \leftskip0pt plus1fill \rightskip0pt plus 1fill \obeylines} \def\endcenter{\smallskip\egroup} \def\center#{\begincenter\bgroup \aftergroup\endcenter \afterassignment\ignorespaces \let\dummy=} %inner macros %;vrblin=350 \def\bitem{\item{$\bullet$}} \newcount\itemno \def\nitem{\bgroup \def\nitem{\advance\itemno1 \item{\number\itemno.}} \def\smallbreak{\endgraf\egroup \smallbreak} \let\smallskip\smallbreak \nitem} \def\aitem{\bgroup\itemno96 \def\aitem{\advance\itemno1 \item{\char\itemno.}} \def\smallbreak{\endgraf\egroup \smallbreak} \let\smallskip\smallbreak \aitem} \def\Aitem{\bgroup\itemno64 \def\Aitem{\advance\itemno1 \item{\char\itemno.}} \def\smallbreak{\endgraf\egroup \smallbreak} \let\smallskip\smallbreak \Aitem} \def\endlist{\endgraf\egroup} %On purpose no \smallskip or so. \def\example#1{\medbreak Example {\sl(#1)}\nobreak\par\noindent \ignorespaces} \def\endintermezzo{\hfil\break\nobreak {\bf End intermezzo.}\medbreak} \def\xyz#1#2#3{\leavevmode \setbox0=\vbox{\hbox{/}\kern0pt} \lower2.65\ht0\hbox{\copy0% \rlap{\qquad#1}}% \kern-.185\ht0\lower1.8\ht0\copy0% \kern-.185\ht0\lower0.95\ht0\copy0% \kern-.11\ht0% \vrule height9ex depth0pt\relax \raise7ex\rlap{\qquad#3}% \vrule height.1pt depth.1pt width 8ex \qquad\lower.6ex\hbox{#2}} %from TeX book ;vrblin=400 \def\partlogo#1{\goodbreak\bigskip\noindent \vbox{\def\line##1{\hbox to\hsize{##1}}% \line{\hrulefill}% \kern-.5\baselineskip \line{\hrulefill{ \phantom{\bf #1}} % \hrulefill}% \kern-.5\baselineskip \line{\hrulefill{ \bf #1} \hrulefill}% \kern-.5\baselineskip \line{\hrulefill}% }\nobreak\smallskip\noindent} %Defaults \let\small\eightpoint \overfullrule=0pt %;nonum %Contents %Newcount % \itemcnt.................208 %Newtoks % \itemtag.................209 %Shortcuts % \ea, \nx....................1 % \ag.........................2 % \dash, \Dash................3 % \DeK.....................6, 7 %Font switching % \tiny......................51 % \small....................414 % \cs.......................255 %Footnote, paragraph % \ftncnt...................202 % \ftn..................203-204 % \m........................205 %LaTeX % \\........................251 % \cite.....................252 % \verb.....................253 % \em.......................254 %Lay-out % \keywordsbox..............301 % \abstractbox..............311 % \contentsbox..............321 % \beginkeywords........303-305 % \endkeywords..............306 % \keywordsname.............302 % \keywords.............307-310 % \beginabstract........313-315 % \endabstract..............316 % \abstractname.............312 % \abstract.............317-320 % \begincontents........323-325 % \endcontents..............326 % \contentsname.............322 % \contents.............327-330 % \beginquote...........331-332 % \endquote.............333-334 % \quote................335-338 % \begincenter..........339-342 % \endcenter................343 % \center...............344-347 % \bitem....................351 % \itemno...................352 % \nitem................353-359 % \aitem................360-366 % \Aitem................367-373 % \endlist..................374 % \example..............376-378 % \endintermezzo........379-380 % \xyz..................382-393 %From TeXbook % \partlogo.............401-412 %Defaults % \overfullrule=0pt.........415 %History of changes %July 1994 Boxes for keywords, abstract, % and contents added. %March 1994 Set up %end%%%%%%%%%%%%%%%%%%%%%%%%%%%Additions% %begin%%%%%%%%%%%%%%%%%%%%%%%math extras% %From Math into BLUes the mods %-- \centering into \centeringp % in order not to % conflict with LaTeX %-- \eqalign has gotten a repetitive % template to allow for more % than one alignment point. \newskip\centeringp%plain's \centeringp=0pt plus1000pt minus1000pt \def\eqalign#1{\null\,\vcenter{\openup \jot\m@th\ialign{\strut\hfil $\displaystyle {##}$&&%mod cgl $\displaystyle {{}##}$\hfil\crcr #1\crcr }}\,} \def\eqalignno#1{\displ@y \tabskip\centeringp \halign to\displaywidth{\hfil $\@lign\displaystyle{##}$\tabskip\z@skip &$\@lign\displaystyle{{}##}$\hfil \tabskip\centeringp &\llap{$\@lign##$}% \tabskip\z@skip\crcr #1\crcr}} \def\leqalignno#1{\displ@y \tabskip\centeringp \halign to\displaywidth {\hfil $\@lign\displaystyle{##}$\tabskip\z@skip &$\@lign\displaystyle{{}##}$\hfil \tabskip\centeringp&\kern-\displaywidth \rlap{$\@lign ##$}\tabskip\displaywidth \crcr #1\crcr}} \def\gtrless{\mathrel{\vcenter{ \offinterlineskip\hbox{${>}$}% \kern-.2ex\hbox{${<}$} } }} %end%%%%%%%%%%%%%%%%%%%%%%%%%math extras% %begin%%%%%%%%%%%%%%%%%%%%%%%%%%%%%icons% %From icons via LaTeX's fonts. %Here use is made of gkpmac's picture %environment. \def\icmat#1#2{%ICon MATrix(rectangular) %#1 is ht of icon matrix, e.g. 4 %#2 is wd of icon matrix, e.g. 2 \vbox{\hrule \hbox to#2\unitlength{\vrule height#1\unitlength\hfil\vrule}% \hrule}% }%end icmat \def\icurt#1#2{%IConUpperRightTriangle %#1 is ht of icon matrix, with UT %the upper triangular part, e.g. 4 %#2 is wd of icon (upper triangular) %matrix, e.g. 2 \vbox to #1\unitlength{\hrule \hbox{\gkpbeginpicture(#2,#2)(0,0)% \put(0,#2){\line(1,-1){#2}}% \gkpendpicture\vrule}% \vss}% }%end icurt \def\squineicurt#1#2{%IConUpperRightTriangle %#1 is ht of icon matrix, with UT %the upper triangular part, e.g. 4 %#2 is wd of icon (upper triangular) %matrix, e.g. 2 %For small diaglines \csname newcount\endcsname\half \half#2 \divide\half 2 \vbox to #1\unitlength{\hrule \hbox{\gkpbeginpicture(#2,#2)(0,0)% \put(0,0){\squine(0,\the\half,#2,#2,% \the\half,0)}% \gkpendpicture\vrule}% \vss}% }%end icurt \def\icllt#1#2{%IConLowerLeftTriangle %#1 is ht of icon matrix, with LT %the lower triangular part, e.g. 4 %#2 is wd of icon (lower triangular) %matrix, e.g. 2 \vbox to #1\unitlength{\vss \hbox{\vrule \gkpbeginpicture(#2,#1)(0,0)% \put(0,#2){\line(1,-1){#2}}% \gkpendpicture}% \hrule}% }%end icllt \def\icuh#1#2#3{%IConUpperHessenberg %#1 is size of icon matrix, with UH % the upper Hessenberg part, e.g. 4 %#2 is wd of icon (upper Hesenberg) % matrix, e.g. 1 %#3 is size Lower Left triangular part, % #1-#2 (for simplicity the latter is added, % could have been calculated, perhaps some % inconsistency test could be incorporated) \vbox{\offinterlineskip \hrule \hbox to#1\unitlength{\vrule height% #2\unitlength depth0pt\relax \hfil\vrule}% \hbox to#1\unitlength {\gkpbeginpicture(#3,#3)(0,0)% \put(0,#3){\line(1,-1){#3}}% \gkpendpicture\hfil\vrule}% \hbox to#1\unitlength{\hfil\vrule width#2\unitlength height.2pt\relax}% }% }%end icuh %Example of use %\input blue.fmt %\beginscript %\unitlength=1ex %$$\icmat44\kern\unitlength\icllt44= % \icllt44\icuh413\qquad AL=LH$$ %$$\icmat63=\icmat63\kern\unitlength % \icurt63\qquad A=QR$$ %\endscript %end%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%icons% %begin%%%%%%%%%%%%%%%%%%%%%%%%%%%%btable% %Table Diversions cgl@rc.service.rug.nl %EuroTeX '92 proceedings, MAPS92.2. %The article discusses typsetting tables %via plain, surveys related work, %introduces the file btable.tex, and %provides a discipline for typesetting %cell-blocks. %;numvrb \newbox\tablebox \newtoks\thisbtable\newtoks\everybtable \newtoks\prebtable\newtoks\postbtable %Cell vertical size, %row height and depth (separation implicit), \newdimen\cvsize \newdimen\tsht \newdimen\tsdp \newdimen\tvsize\newdimen\thsize %Parameter setting macros: Rules \def\hruled{\def\lineglue{\hrulefill} \def\colsep{}\def\rowsep{\hrule} \let\rowstbsep=\colsep \let\headersep=\rowsep} \def\vruled{\def\lineglue{\hfil} \def\colsep{\vrule}\def\rowsep{} \let\rowstbsep=\colsep \let\headersep=\hrule} \def\ruled{\def\lineglue{\hrulefill} \def\colsep{\vrule}\def\rowsep{\hrule} \let\rowstbsep=\colsep \let\headersep=\rowsep} \def\nonruled{\def\lineglue{\hfil} \def\colsep{}\def\rowsep{} \def\rowstbsep{\vrule} \def\headersep{\hrule}} \def\dotruled{\def\lineglue{\dotfill} \def\rowsep{\hbox to\thsize{\dotfill}} \def\colsep{\lower1.5\tsdp\vbox to \cvsize{\leaders\hbox to0pt{\vrule height2pt depth2pt width0pt\hss.\hss} \vfil}} \let\rowstbsep=\colsep \let\headersep=\rowsep} %Parameter setting macros: % Controling positioning \def\ctr{\def\lft{\hfil}\def\rgt{\hfil}} %Centered \def\fll{\def\lft{} \def\rgt{\hfil}} %Flushed left \def\flr{\def\lft{\hfil}\def\rgt{}} %Flushed right %Parameter setting macros: Framing \def\framed{\let\frameit=\boxit} \def\nonframed{\def\frameit##1{##1}} \def\dotframed{\let\frameit=\dotboxit} %;vrblin=100 \def\beginbtable{\vbox\bgroup \let\rsl=\rowstblst%Copy \ifx\empty\template\ifx\empty\rsl \def\template{\colsepsurround \lft####\rgt&&\lft####\rgt\cr} \else\def\template{\colsepsurround ####\hfil&&\lft####\rgt\cr}\fi \def\tstrut{\vrule height\tsht depth\tsdp width0pt} %Logical mark up of column and %row separators, via use of \def\cs{&\colsepsurround\colsep \colsepsurround&} \def\prs{&\colsepsurround\lineglue&} \def\srp{&\lineglue\colsepsurround&} \def\rs{\colsepsurround\tstrut\cr \ifx\empty\rowsep \else\noalign{\rowsep}\fi \ifx\empty\rsl \else\ea\nxtrs\fi} \def\grs{\colsepsurround\tstrut\cr\ghostrow} \def\ghostrow{\rss\prs\logms2\lineglue\cr\nxtrs} \def\rss{&\colsepsurround\rowstbsep \colsepsurround&} \def\hs{\colsepsurround\tstrut\cr \ifx\empty\headersep \else\noalign{\headersep}\fi \ifx\empty\rsl\else\ea\nxtrs\fi} \def\process##1{\hbox to0pt{\hss ##1\hss}\kern.5ex} \the\everybtable\relax \the\thisbtable\relax \the\prebtable \cellsize \tsht=.775\cvsize\tsdp=.225\cvsize \setbox\tablebox=\vbox\bgroup \tabskip=0pt\relax\offinterlineskip \halign\bgroup \span\template\ifx\empty\first \ifx\empty\rsl \else\ifx\empty\header \else\ea\rss\fi \fi\else\first\ea\rss\fi \ifx\empty\header \ifx\empty\first \if\empty\rsl\else \ea\nxtrs\fi\else\ea\hs\fi \else\header\tstrut\ea\hs\fi}% %end \beginbtable %;vrblin=200 \def\endbtable{\colsepsurround \tstrut\crcr\egroup\egroup %end setbox \the\postbtable \ifx\btablecaption\empty \else\hbox to\thsize{\strut\hfil \btablecaption\hss}\captionsep\fi \frameit{\copy\tablebox} \ifx\footer\empty \else\footersep\hbox{\vtop {\noindent\hsize=\thsize \footer}}\fi \egroup\thisbtable={}}% %end \endbtable \def\btable#1{\beginbtable#1\endbtable} %\def\btable#{\beginbtable\bgroup % \aftergroup\endbtable % \afterassignment\ignorespaces % \let\dummy=} %Defaults %;vrblin=300 \def\cellsize{\cvsize=4ex \tsht=.775\cvsize\tsdp=.225\cvsize} %\cellsize \def\colsepsurround{\kern.5em} \def\btablecaption{} \def\first{} \def\header{} \def\rowstblst{} \def\footer{} \def\data{} \def\captionsep{\medskip} \def\headersep{\hrule} \def\footersep{\smallskip} \def\rowstbsep{\vrule} %\prebtable{} \postbtable{\global\thsize=\wd\tablebox \global\tvsize=\ht\tablebox \global\advance\tvsize by\dp\tablebox} \def\template{} \nonruled \nonframed %end Defaults %Auxiliaries %;vrblin=350 \def\boxit#1{\vbox{\hrule\hbox{\vrule \vbox{#1}\vrule}\hrule}} \def\dotboxit#1{\vbox{\offinterlineskip \hbox to\thsize{\dotfill}% \hbox{\lower\tsdp\vbox to\tvsize{% \leaders\hbox to0pt{\hss\vrule height2pt depth2pt width0pt.\hss }\vfil}% \vbox{#1}\lower\tsdp\vbox to\tvsize{% \leaders\hbox to0pt{\hss\vrule height2pt depth2pt width0pt.\hss }\vfil}}% \hbox to\thsize{\dotfill}}} %And to account for logical columns with %\logms% logical multispan \def\spicspan{\span\omit} \def\logms#1{\omit\mscount=#1\multiply \mscount by2 \advance\mscount by-1 \loop\ifnum\mscount>1 \spicspan\advance\mscount by-1 \repeat} %To process FIFO \def\fifo#1{\ifx\ofif#1\ofif\fi \process{#1}\fifo} \def\ofif#1\fifo{\fi} %\def\process#1{\hbox to0pt{\hss % #1\hss}\kern.5ex} %To handle row stub list \def\nxtrs{\ifx\empty\rsl %\let\nxtel=\relax \else\def\nxtel{\ea\nrs\rsl\srn}% \ea\nxtel\fi}%next Row Stub \def\nrs#1#2\srn{\gdef\rsl{#2}#1\rss} %\endinput %btable %;nonum %Contents btable.tex %Newbox % \tablebox...................1 %Newtoks % \thisbtable, \everybtable...2 % \prebtable, \postbtable.....3 %Parameter setting: rules % \hruled.................10-13 % \vruled.................14-17 % \ruled..................18-21 % \nonruled...............22-25 % \dotruled...............26-33 %Parameter setting: positioning % \ctr.......................36 % \fll.......................38 % \flr.......................40 %Parameter setting: framing % \framed....................43 % \nonframed.................44 % \dotframed.................45 %User macro % \beginbtable..........101-150 % \endbtable............201-214 % \btable...............216-219 %Defaults % \cellsize.............301-303 % \colsepsurround...........304 % \btablecaption............305 % \first....................306 % \header...................307 % \rowstblst................308 % \footer...................309 % \data.....................310 % \captionsep...............311 % \headersep................312 % \footersep................313 % \rowstbsep................314 % \prebtable................315 % \postbtable...........316-318 % \template.................319 % \ctr......................320 % \nonruled.................321 % \nonframed................322 %Auxiliaries % \boxit................351-352 % \dotboxit.............353-363 % \spicspan.................366 % \logms................367-371 % \fifo.................373-374 % \ofif.....................375 % \process..............376-377 % \nxtrs................379-382 % \nrs......................383 %History of changes %Version 2 July 1994 % \cellsize is invoked in % \beginbtable. % Token vars for \prebtable % \postbtable. %June 1994 % \beginbtable...\endbtable % two-part macro % \btable minimal variant % \preinsert, \postinsert changed % into \prebtable, \postbtable % toks vars: \everybtable, % \thisbtable %Version 1.1 \btablecaption as caption % (to prevent name clashes) % \def\cellsize{\cvsize= % et cetera} to be used % as default % and after font change. %end%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%btable% %begin%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%vrb% %vrb.tex %Author: C.G. van der Laan % Hunzeweg 57, 9893PB % Garnwerd The Netherlands % 05941-1525, cgl@rc.service.rug.nl. %Purpose: Verbatim macros via plain, % to be used with AnyTeX. % ;numvrb %User toks variables \newtoks\thisverbatim \newtoks\everyverbatim \newtoks\preverbatim \newtoks\postverbatim %User customization \preverbatim{\medskip} \postverbatim{\smallbreak} % ;vrblin100 %User `options': \numvrb \newcount\vrblin \def\numvrb{\vrblin0 \everypar{\advance\vrblin1 \llap{\sevenrm\the\vrblin\quad}}} \def\nonum{\everypar={}} % : \emc, \unmc \def\makeescape#1{\catcode`#1=0 } \def\makeactive#1{\catcode`#1=13 } {\makeactive\< \gdef\emc{\makeactive\<% \def<##1>{$\langle##1\rangle$}}} \def\unmc{\catcode`\<=12 }%;vrblin200 %User macro \def\beginverbatim{\begingroup \tt\setupverbatim \the\everyverbatim\relax \the\thisverbatim\relax \the\preverbatim\verbatimgobble} \def\endverbatim{\the\postverbatim \endgroup\thisverbatim={}} \def\setupverbatim{\makeactive\`% \let\!=!\makeescape\!%Knuth&Levy \def\par{\leavevmode\endgraf}%TB381 \obeylines\uncatcodespecials \obeyspaces} {\obeyspaces\global\let =\ \catcode`\^=7 \obeylines\gdef\verbatimgobble#1^^M{}% \makeactive\` \gdef`{\relax\lq}}%TB381 \def\uncatcodespecials{\def\do##1{% \catcode`##1=12 }\dospecials} \def\math{\bgroup$\catcode`\_=8\relax \catcode`\^=7\relax} \def\endmath{$\egroup} \def\verbatim#{\beginverbatim\bgroup \aftergroup\endverbatim \afterassignment\ignorespaces \let\dummy=} % ;vrblin250 %Minimal | tag for inline verbatim \def\vrt{{\tt\char`\|}}\makeactive\| \def|{\bgroup\tt\setupverbatim \the\everyverbatim\relax \the\thisverbatim\relax \def|{\egroup\thisverbatim{}}} %\endinput % ;nonum %Contents vrb.tex cgl@rc.service.rug.nl %Newtoks % \thisverbatim.................2 % \everyverbatim................3 % \preverbatim..................4 % \postverbatim.................5 %Customization % \preverbatim..................8 % \postverbatim.................9 %Options % \numvrb.................103-105 % \nonum......................106 % \makeescape.................108 % \makeactive.................109 % \emc....................111-112 % \unmc.......................113 % <#1>........................112 %User macro % \beginverbatim..........202-206 % endverbatim...208-209 % \verbatim...............228-231 % \setupverbatim..........211-215 % \verbatimgobble.............218 % `...........................219 % \uncatcodespecials..........221 % math.......224-225 % endmath....... 226 %Inline verbatim % \vrt........................252 % vertical bar symbol...... ..253 %History of changes %July 1994 Version 2 % \pre- and \postverbatim % changed into token vars. % Added % \unmc, unable metacode % \verbatim minimal tag % math % endmath %Febr 1994 Release Version 1.0 %end%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%vrb% %begin%%%%%%%%%%%%%%%%%%%%%%bibliography% %From BLUe's Bibliography%;numvrb %\ls template \newcount\bcnt \def\lsstraight{% \def\ls##1{\advance\bcnt1 \item{\the\bcnt.}##1\endgraf} %\ls a la AMS \newcount\suffixcnt \def\lsams{\frenchspacing \let\lstnme\relax \let\lstyear\relax \def\ls##1{\ea\bibitem##1} \def\bibitem##1(##2){\global\advance \bcnt1 \def\authornme{##1}% \def\authoryear{##2}% \ifx\lstnme\authornme \def\authornme{------}% \ifx\lstyear\authoryear \global\advance\suffixcnt1 \def\authoryear{--}% \else\let\lstyear\authoryear\suffixcnt0 \fi \else\let\lstnme\authornme \let\lstyear\authoryear\suffixcnt0 \item{[\the\bcnt]}\authornme$\,$% (\authoryear\suffix)}%end \bibitem \def\suffix{\ifcase\suffixcnt\or a\or b\or c\or d\or e\or f\or g\or h\or i\or j\or k\or l\or m\or n\or o\or p\or q\or r\or s\or t\or u\or v\or w\or x\or y\or z\fi} } %;vrblin100 %Loading %Load selected entries \def\gobble#1{} \def\loadselectivefrom#1{\let\x\def %or any name for x \x\def##1{\ifx##1\undefined\ea\gobble \else \ea\gdef\ea##1\fi} \input #1 %lit.dat \let\def\x} %;vrblin200 \newif\ifstore \storetrue \newtoks\thisreferences \newtoks\referencesname \newtoks\prereferences \newtoks\postreferences \newbox\referencesbox \referencesname{References} \def\references#1{\beginreferences#1 \endreferences} \def\beginreferences#1\endreferences{% \bgroup\def\process##1{\gdef##1{% Reference {\tt\string##1} not in database (Sorry!) \loaderror{Reference}}}\fifo#1\ofif \loadselectivefrom{lit.dat} %formatting \ifstore\global\setbox\referencesbox= \vbox\bgroup\fi \bcnt0 \lsams%Default ls \the\thisreferences \def\process##1{\ls{##1} \xdef##1{\the\bcnt}} \fifo#1\ofif \endgraf\endreferences \def\endreferences{\egroup \ifstore\egroup\fi \thisreferences{}} \def\pasteupreferences{% \the\prereferences \unvbox\referencesbox \the\postreferences} \prereferences{\head{\the \referencesname}} %\postreferences{} %;vrblin250 \def\beginpictures#1\endpictures{% \bgroup\let\commonforpic=x \def\process##1{\gdef##1{Picture {\tt\string##1} not in database, Sorry!\loaderror{Picture}}}% \fifo#1\ofif \loadselectivefrom{pic.dat} \endpictures\commonforpic} \def\endpictures{\egroup} \def\pictures#1{\beginpictures#1% \endpictures} \def\loadallpictures{\input pic.dat \commonforpic} \def\loaderror#1{\write16{#1 not in database}} %\endinput %;nonum %Contents bibliography % cgl@rc.service.rug.nl %Newcount % \bcnt.........................2 % \suffixcnt....................8 %Newif % \ifstore....................201 %Newtoks % \thisreferences.............202 % \referencesname........203, 206 % \prereferences.........204, 234 % \postreferences.............205 %Newbox % \referencesbox..............206 %Initializations % \prereferences..........231-232 % \postreferences.............233 %\ls customization % \lsstraight.................3-6 % \lsams.....................9-34 % \suffix...................30-33 %loading % \gobble.....................102 % \loadselectivefrom......104-109 %User level % \references.............208-209 % \beginreferences........210-225 % \endreferences..........226-228 % \pasteupreferences......230-233 % \beginpictures..........251-259 % \endpictures................260 % \pictures...............261-262 % \loadallpictures........263-265 % \loaderror..............266-267 %History of changes %July 1994 Information supplied before % \beginscript, past up later. % Separate loading of pictures. %June 1994 Simpler user interface % \beginreferences % \ ... \ % \endreferences %Created May 1994 %end%%%%%%%%%%%%%%%%%%%%%%%%bibliography% %begin%%%%%%%%%%%%%%%%%%%%%%%%Cross-Refs% %From BLUe's Cross-Referencing %cgl@rc.service.rug.nl %;numvrb \newif\ifadvance \advancetrue \newcount\frmcnt \newtoks\prenum\newtoks\postnum %Default prenum and postnum \prenum{(}\postnum{)} %Automatic numbering \def\frmnum{\ifadvance\global\advance \frmcnt1 \fi \the\prenum\the\frmcnt\the\postnum} %Automatic numbering and attaching a name \def\ref{\frmnum\create} %\def\create#1{\ifx#1$$\else % \xdef#1{\the\frmcnt}\fi} %The version, which handles also displaylines \def\create#1{\ifx#1$$\else\ifx#1\hfil\hfil \else\xdef#1{\the\frmcnt}\fi\fi} %Citation \newif\ifproof \prooftrue \def\crsref#1{\ifx#1\undefined{\ifproof \leavevmode\vadjust{\kern-1ex \rightline{\vbox to0pt{\vss \rlap{FR: \tt\string#1}}}}\fi} \else\the\prenum#1\the\postnum\fi} %;nonum %Contents Cross-Referencing % cgl@rc.service.rug.nl %Newifs, newcounts % \ifadvance, \ifproof..........1, 18 % \frmcnt...........................2 %Newtoks % \prenum, \postnum.................3 %Context % \prenum, \postnum.................4 %Automatic numbering, referencing % \frmnum.........................7-9 % \ref.............................11 % \create.......................15-16 %Cross referencing % \crsref.......................19-23 %History of changes %June 94 Created %end%%%%%%%%%%%%%%%%%%%%%%%%%%%cross-ref% %begin%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%sort% %Shorthands;numvrb %\let\ag=\aftergroup %\let\ea=\expandafter\let\nx=\noexpand %Counters \newcount\n\newcount\k\newcount\kk\n=0 \newcount\kzero\kzero0 %Bias value \newcount\pk\newcount\pkone%Used in sortcs \newcount\frst%First value of range \newcount\lst %Last value of range \newcount\slst%Successor \lst \newcount\dif %Difference \lst-\frst \newcount\nw %Number of words \newcount\nc %Number of characters/comp \newcount\numex %Number of exchanges \newcount\rndval%Random number \newcount\rndnum%Seed random generator \newcount\rndtmp%Temporary value \newcount\status%Status comparison %Newif-s \newif\ifcontinue%controls loops \newif\iffound%locating accent cs \newif\ifproof\prooftrue %;vrblin=100 %Storing: from copy \def\seq#1\qes{\k0 \fifow#1 \wofif{} } %Auxiliaries: FIFO \def\fifow#1 {\ifx\wofif#1\n\k\wofif\fi \processw{#1}\fifow} \def\wofif#1\fifow{\fi} \def\processw#1{\advance\k1 \ea \gdef\csname\the\k\endcsname{#1}} %Storing: from file \def\storefrom#1{%#1 is file name \immediate\openin\inx=#1 \k\kzero \continuetrue \loop\ifeof\inx\continuefalse\fi \ifcontinue\advance\k1{}% \read\inx t\ea o\csname\the\k\endcsname \repeat\advance\k-1\n\k \immediate\closein\inx} %Storing: random numbers \def\storerandomn#1{%#1 number of numbers \n#1\k0 \loop\ifnum\k<\n\advance\k1 \rnd\ea \xdef\csname\the\k\endcsname{\the\rndval} \repeat} %With, due to Reid, 1987 \def\rnd{\global\multiply\rndnum371{}% \global\advance\rndnum1{}% \ifnum\rndnum>99999 \rndtmp\rndnum \divide\rndtmp100000 \multiply\rndtmp100000 \global\advance\rndnum-\rndtmp \fi\global\rndval\rndnum \global\divide\rndval1000 } %Storing: random words \def\storerandomw#1{%#1 number of words \n#1\nw\n\def\defarr{\ea\gdef \csname\the\nw\endcsname} {\loop\ifnum0<\nw{\ag\defarr\ag{% \randomword}}\advance\nw-1 \repeat}}%end s-r-w. \def\randomword{\rnd \nc\rndval \divide\nc15 \advance\nc2 \loop\ifnum0<\nc\randomchar \advance\nc-1 \repeat}%end r-word %Random character is modified \def\randomchar{\rnd \multiply\rndval29 \divide\rndval100 \ifnum26=\rndval\rndval0 \fi \ifnum26<\rndval\rndval4 \fi %Mod cgl: I \ag-ed the letter \ea\ag\ifcase\rndval a\or b\or c\or d\or e\or f\or g\or h\or i\or j\or k\or l\or m\or n\or o\or p\or q\or r\or s\or t\or u\or v\or w\or x\or y\or z\fi}%end r-char %;vrblin=200Typeset %Parameters: Separators \def\sepn{, }%Number separator \def\sepw{ } %Word separator \newtoks\indword \let\sep\sepw \def\prc#1{\init{#1}\def\prc##1{% \ifnum\lst=##1{}\else\ifnum\slst=##1{}% \lst\slst\advance\slst1{}\else \prtfl\sepn\init{##1}\fi\fi}} \def\init#1{\frst=#1\lst=#1\slst=#1{}% \advance\slst1{}} %Print range: \frst-\lst (or \lst). \def\prtfl{\the\frst\ifnum\frst<\lst \advance\frst1{}\ifnum\frst=\lst\sepn \else\nobreak--\nobreak\fi\the\lst\fi} %Printing sequences \def\prts{{\k\kzero%print \1...\n \def\sep{\let\sep=\sepw}% \loop\ifnum\k<\n\advance\k1 \sep\csname\the\k\endcsname \repeat}}%end \prts \let\prtw=\prts \def\prtn{{\k\kzero%Print number sequence \loop\ifnum\k<\n\advance\k1 \ea\prc\csname\the\k\endcsname \repeat\prtfl}}%end \prtn \def\typindentry#1{%#1 a def \ea\splitintoks#1% \ifcase\digit\the\indword\or {\tt\the\indword}\or {\tt\char92\the\indword}\or $\langle\hbox{\the\indword}\rangle$\fi{} \pagenrs.} \def\splitintoks#1 !#2 #3.{\indword{#1}% \chardef\digit=#2{}\def\pagenrs{#3}} \def\prtind{{\k\kzero \def\sep{\let\sep\sepw}% \loop\ifnum\k<\n\advance\k1 \sep\ea\typindentry\csname\the\k\endcsname% \repeat}} %;vrblin=300 %Sorting in O(nlog n) \def\sortn{\let\cmp\cmpn\sort\prtn} \def\sortaw{\let\cmp\cmpaw\sort\prtw} \def\sortw{\let\cmp\cmpw{\accdef\sort}\prtw} \def\sort{\heapsort} %Paramaters: ij and accent string \def\accstr{\`\'\"\^\c} \def\accdef{\def\i{i}\def\j{j}% \def\'##1{##1a}\def\`##1{##1g}% \def\"##1{##1t}\def\^##1{##1h}% \def\c##1{##1c}} \def\ij{ij} %Sorting parameters: exchange macro \def\xch#1#2{%#1, #2 counter variables \ea\let\ea\auxone\csname\the#1\endcsname \ea\let\ea\auxtwo\csname\the#2\endcsname \ea\global\ea\let\csname\the#2\endcsname \auxone \ea\global\ea\let\csname\the#1\endcsname \auxtwo} %Sorting parameters: number comparison \def\cmpn#1#2{%#1, #2 are def-s %Result: \status= 0, 1, 2, if % \val{#1} =, >, < \val{#2} \ifnum#1=#2\global\status0 \else \ifnum#1>#2\global\status1 \else \global\status2 \fi\fi} %Parameters: comparison of words \def\cmpw#1#2{%#1, #2 are def-s %Result: \status= 0, 1, 2, if % \val{#1} =, >, < \val{#2} \let\nxt\nxtw\cmpc#1#2} \def\cmpaw#1#2{%#1, #2 are defs with as %replacement text the words. %Result: \status= 0, 1, 2, if % \val{#1} =, >, < \val{#2} \let\nxt\nxtaw\cmpc#1#2} \def\cmpc#1#2{%#1, #2 are def-s %Result: \status= 0, 1, 2, if % \val{#1} =, >, < \val{#2} \ifproof\global\advance\nc1 \let\aa#1\let\bb#2\fi \global\status0 \continuetrue {\loop\ifx\empty#1\continuefalse\fi \ifx\empty#2\continuefalse\fi \ifcontinue\nxt#1\nxtt\nxt#2\nxtu \lge\nxtt\nxtu \repeat}\ifnum0=\status \ifx\empty#1\ifx\empty#2\else \global\status2 \fi \else\ifx\empty#2\global\status1 \fi \fi\fi % \ifproof\immediate\write16{\aa % \ifnum0=\status=\else % \ifnum1=\status>\else % <\fi\fi\bb} % \fi%end ifproof \def\lge#1#2{%#1 and #2 letter values %Result: \status= 0, 1, 2, if % #1 =, >, < #2. %and \continuefalse if #1=/#2. \ifnum#1=#2{}\else\continuefalse \ifnum#1<#2\global\status2 \else \global\status1 \fi \fi} \def\nxtw#1#2{\def\pop##1##2\pop{% \gdef#1{##2}\def\head{##1}}%head and tail \ea\pop#1\pop%split in head and tail \ea\loc\head\accstr%\head is an accent cs? \if<\head\ea\pop#1\pop\fi \iffound\let\acs\head \ea\pop#1\pop%next head and tail \ea\let\ea#2\csname ot\acs\head\endcsname \else\ea\let\ea#2\csname ot\head\endcsname \fi} \def\loc#1#2{\def\locate##1#1##2\end {\ifx\empty##2\empty\foundfalse \else\foundtrue\fi}\ea\locate#2.#1\end} %Parameters: for ASCII words \def\nxtaw#1#2{%Result: value of first %letter of string supplied in #1 is delivered %in #2. (To be used as a number (\chardef)). %#1, #2 are control sequences. \def\pop##1##2\pop{\gdef#1{##2}% \chardef#2=`##1{}}\ea\pop#1\pop} \def\cmpir#1#2{%#1, #2 defs %Result: \status= 0, 1, 2 if % \val{#1} =, >, < \val{#2} %\immediate\write16{Compared are: #1 and #2}% \ea\ea\ea\decom\ea#1#2} \def\decom#1 !#2 #3.#4 !#5 #6.{% \def\one{#1}\def\four{#4}\cmpw\one\four \ifnum0=\status%Compare secondary keys \ifnum#2<#5{}\global\status2{}\else \ifnum#2>#5{}\global\status1{}\else %Compare tertiary keys \ifnum#3<#6{}\global\status2{}\else \ifnum#3>#6{}\global\status1{}\fi \fi \fi \fi \fi} \def\red{%Reduction of \1,...,\n \k0\kk0\let\refer\empty \loop\ifnum\k<\n\advance\k1 \ea\let\ea\record\csname\the\k\endcsname \ea\splitwn\record% \ifx\refer\word%extend with number \ea\xdef\csname\the\kk\endcsname{% \csname\the\kk\endcsname, \num}% \else%write record to \kk \advance\kk1\let\refer\word\ea\global \ea\let\csname\the\kk\endcsname\record \fi \repeat\n=\kk} \def\redrng{%Reduction of \1,...,\n, with %range representation of page numbers {\k1\kk0 \ifnum\n>0 \ea\let\ea\record\csname\the\k\endcsname \ea\splitwn\record\let\refer\word \let\nrsrng\empty\prcrng\num\fi \loop\ifnum\k<\n\advance\k1 \ea\let\ea\record\csname\the\k\endcsname \ea\splitwn\record% \ifx\refer\word%extend \nrsrng with number \prcrng\num \else%write record to \kk \advance\kk1 \strnrs \ea\xdef\csname\the\kk\endcsname{\refer{} \nrsrng.}\let\nrsrng\empty\init\num \prcrng\num\let\refer\word \fi \repeat\ifnum1<\n \advance\kk1 \strnrs \ea\xdef\csname\the\kk\endcsname{\word{} \nrsrng.} \global\n\kk\fi}} \def\prcrng#1{\init{#1}\def\prcrng##1{% \ifnum##1=\lst\else\ifnum##1=\slst \lst\slst\advance\slst1 \else \strnrs\init{##1}\fi\fi}} \def\strnrs{\dif\lst\advance\dif-\frst \edef\nrsrng{\ifx\nrsrng\empty\else \nrsrng\sepn\fi\the\frst\ifnum0<\dif \ifnum1=\dif\sepn\the\lst \else--\the\lst \fi \fi}} \def\splitwn#1 !#2 #3.{\def\word{#1 !#2}% \def\num{#3}} \def\getdig#1 !#2 #3.{\def\dig{#2}} \def\sortcs{\global\k0\global\pk\n \global\pkone\pk\global\advance\pkone1 %Invariant: 1:k non-cs % pk+1:n control seq-s \loop\global\advance\k1 \ifnum\k<\pkone \ea\ea\ea\getdig\csname\the\k\endcsname.% \if2\dig{\continuetrue \loop \ifnum\k=\pk\continuefalse \else\ea\ea\ea\getdig\csname\the\pk \endcsname.% \if2\dig \else\xch\k\pk\continuefalse \fi \fi\global\pkone\pk\global\advance\pk-1 \ifcontinue \repeat}% \repeat}%Result\1:\pk non-cs, \pkone:\n cs %;vrblin=500 %Parameters: Ordering table %suffix g stands for grave, ` % a stands for aigue, ' % h stands for hat, ^ % t stands for trema, " % c stands for cedille. \ea\chardef\csname ot=\endcsname=12 \ea\chardef\csname ot/\endcsname=11 \ea\chardef\csname ot-\endcsname=13 \ea\chardef\csname ot,\endcsname=14 \ea\chardef\csname ot.\endcsname=15 \ea\chardef\csname ot"\endcsname=9 \ea\chardef\csname ot&\endcsname=5 \ea\chardef\csname ot'\endcsname=7 \ea\chardef\csname ot`\endcsname=8 \ea\chardef\csname ot*\endcsname=10 \ea\chardef\csname ot<\endcsname=28 \ea\chardef\csname ot>\endcsname=29 \ea\chardef\csname ot!\endcsname=30 \ea\chardef\csname ot?\endcsname=31 \ea\chardef\csname ot[\endcsname=13 \ea\chardef\csname ot]\endcsname=14 \ea\chardef\csname ot0\endcsname=16 \ea\chardef\csname ot1\endcsname=17 \ea\chardef\csname ot2\endcsname=18 \ea\chardef\csname ot3\endcsname=19 \ea\chardef\csname ot4\endcsname=20 \ea\chardef\csname ot5\endcsname=21 \ea\chardef\csname ot6\endcsname=22 \ea\chardef\csname ot7\endcsname=23 \ea\chardef\csname ot8\endcsname=24 \ea\chardef\csname ot9\endcsname=25 \chardef\ota=35 \chardef\otA=35 \chardef\otaa=35 \chardef\otag=35 \chardef\otat=35\chardef\otah=35 \chardef\otb=40 \chardef\otB=40 \chardef\otc=46 \chardef\otC=46 \chardef\otcc=46 \chardef\otd=53 \chardef\otD=53 \chardef\ote=60 \chardef\otE=60 \chardef\otea=60 \chardef\oteg=60 \chardef\otet=60 \chardef\oteh=60 \chardef\otf=67 \chardef\otF=67 \chardef\otg=74 \chardef\otG=74 \chardef\oth=81 \chardef\otH=81 \chardef\oti=88 \chardef\otI=88 \chardef\otit=88 \chardef\otih=88 \chardef\otj=95 \chardef\otJ=95 \chardef\otjt=95 \chardef\otk=102 \chardef\otK=102 \chardef\otl=109 \chardef\otL=109 \chardef\otm=116 \chardef\otM=116 \chardef\otn=123 \chardef\otN=123 \chardef\oto=130 \chardef\otO=130 \chardef\otoa=130 \chardef\otog=130 \chardef\otot=130 \chardef\otoh=130 \chardef\otp=137 \chardef\otP=137 \chardef\otq=143 \chardef\otQ=143 \chardef\otr=150 \chardef\otR=150 \chardef\ots=157 \chardef\otS=157 \chardef\ott=164 \chardef\otT=164 \chardef\otu=171 \chardef\otU=171 \chardef\otut=171 \chardef\otuh=171 \chardef\otv=178 \chardef\otV=178 \chardef\otw=185 \chardef\otW=185 \chardef\otx=192 \chardef\otX=192 \chardef\otij=199 \chardef\otIJ=199 \chardef\oty=200 \chardef\otY=200 \chardef\otz=206 \chardef\otZ=206 %\endinput%;nonum %cgl@rc.service.rug.nl %Contents sort.tex %Counters .......................5--19 %newifs ........................20--23 %Storing %from copy ...................101--108 % \seq...\qes ...................102 %from file ...................110--117 % \storefrom ...............112--117 %random generated items % \storerandomn ............119--124 % \rnd .....................127--134 % \storerandomw ............137--142 % \randomword ..............144--148 % \randomchar ..............150--160 %Typeset % parameters ................202-205 % \prc .....................207--210 % \init ....................212--213 % \prtfl ...................216--218 % \prts ....................221--225 % \prtw .........................227 % \prtn ....................229--232 % \typeind .................234--240 % \splittot ................242--243 % \prtind ..................245--249 %Sorting % \sortn ........................302 % \sortaw .......................304 % \sortw ........................306 % \sort .........................308 % \accstr .......................311 % \accdef ..................313--316 % \ij ...........................318 % \xch .....................321--327 % \cmpn ....................330--335 % \cmpw ....................338--341 % \cmpaw ...................343--347 % \cmpc ....................349--369 % \lge .....................371--378 % \nxtw ....................380--388 % \loc .....................390--392 % \nxtaw ...................395--400 % \cmpir ...................402--405 % \decom ...................407--418 % \red .....................420--432 % \redrng ..................434--455 % \prcrng ..................457--460 % \strnrs ..................462--468 % \splitwn .................470--471 % \getdig .......................473 % \sortcs ..................475--491 %Ordering table ..............501--568 %History of changes %Oct 1994 OT modified with respect to % Index sorting. % Sorting macros adapted and % extended. %March 1994 Contents added to file sort.tex. %Jan 1994 Macros released for CTAN. %Spring 1993 Abridged version Sorting in BLUe % for TUG'93 (Aston) TB 14.3, 1993. %Fall 1992 Release for MAPS 93.1. %end%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%sort% %begin%%%%%%%%%%%%%%%%%%%%%%%%%%%%%heap% %heapsort.tex Jan, 93 \newcount\n\newcount\lc\newcount\r \newcount\ic\newcount\uone \newcount\jc\newcount\jj\newcount\jjone \newif\ifgoon %Non-descending sorting \def\heapsort{%data in \1 to \n \r=\n\heap\ic=1{}% {\loop\ifnum\r>1{}\xch\ic\r \advance\r-1{}\sift\ic\r \repeat}} \def\heap{%Transform \1..\n into heap \lc=\n\divide\lc2{}\advance\lc1{}% {\loop\ifnum\lc>1{}\advance\lc-1{}% \sift\lc\n\repeat}} \def\sift#1#2{%#1, #2 counter variables \jj=#1\uone=#2\advance\uone1{}\goontrue {\loop\jc=\jj \advance\jj by\jj \ifnum\jj<\uone \jjone=\jj \advance\jjone1{}% \ifnum\jj<#2{}\cmpval\jj\jjone \ifnum2=\status\jj=\jjone\fi\fi \cmpval\jc\jj\ifnum2>\status\goonfalse\fi \else\goonfalse\fi \ifgoon\xch\jc\jj\repeat}} \def\cmpval#1#2{%#1, #2 counter variables %Result: \status= 0, 1, 2 if % \val{#1} =, >, < \val{#2} \ea\let\ea\aone\csname\the#1\endcsname \ea\let\ea\atwo\csname\the#2\endcsname \cmp\aone\atwo} %\endinput %cgl@rc.service.rug.nl %end%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%heap% %begin%%%%%%%%%%%%%%%%%%%%%%%%%%%%quick% %quick.tex Jan 93 \newcount\low\newcount\up\newcount\m \def\quicksort{%Values given in %\low,...,\up are sorted, non-descending. %Parameters: \cmp, comparison. \ifnum\low<\up\else\brk\fi %\refval, a reference value selected at random. \m=\up\advance\m-\low%Size-1 of array part \ifnum10<\m\rnd\multiply\m\rndval \divide\m99{}\advance\m\low \xch\low\m \ea\let\ea\refval\csname\the\low\endcsname \m=\low\k=\low\let\refvalcop=\refval {\loop\ifnum\k<\up\advance\k1{}% \ea\let\ea\oneqs\csname\the\k\endcsname \cmp\refval\oneqs\ifnum1=\status \global\advance\m1{}\xch\m\k\fi \let\refval=\refvalcop \repeat}\xch\low\m {\up=\m\advance\up-1{}\quicksort}% {\low=\m\advance\low1{}\quicksort}\krb} \def\brk#1\krb{\fi}\def\krb{\relax} %\endinput %cgl@rc.service.rug.nl %end%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%quick% %begin%%%%%%%%%%%%%%%%%%%%%%%%%%%%index% %From BLUe's Index Oct 94%;numvrb %Some unused macros are left in. \newread\inxin \newtoks\indword \newtoks\indexfile %To parameterize the resulting index \newtoks\irfile %To parameterize the IRs \newtoks\indexname \newtoks\preindex \newtoks\postindex \newtoks\ignores \newtoks\conseqs \newtoks\consyms \newtoks\srtkeys \newtoks\srtkeypairs %Initializations \proofmodetrue \irfile{index} \indexfile{index.elm} \indexname{Index} \preindex{\head{\the\indexname}} \postindex{} \immediate\openout\inx=index \conseqs{\c\space\bf\it\rm\tt\sub\relax} \consyms{\`\'\"\^\~} \srtkeypairs{\TeX{tex}\LaTeX{latex}\AmSTeX{amstex}} \srtkeys{\TeX\LaTeX\AmSTeX} \let\sub\relax %Macros %User level %;vrblin=100 \def\sortindex{%Nov 1994, cgl %Purpose: %To sort IR file. %Input: default index is sorted % ( file specified in \irfile) %Output: file index.elm. \newpage\immediate\closeout\inx \filetoarray{\the\irfile} \immediate\write16{Sorting n=\the\n. Please wait, O(nlog n) process.} \let\cmp\cmpir\let\nxtw\nxtwindex \otindex\let\ \space {%Make sortkey defs \ea\sokdef\the\srtkeypairs\fedkos\relax \sort \let\spaceseparator\space \setupnxtokens\def\ {\nx\ }% \immediate\write16{Range reduction.} \redrngtofile{index.srt} \immediate\write16{After reduction and writing to file index.srt; n=\the\n.} \immediate\write16{Transform index.srt-->index.elm.} \tawfiletofile{index.srt}{\the \indexfile}}} %Set up set of \srtkeys \def\setupsrtkeys{\ea \sok\the\srtkeypairs\kos\relax} %;vrblin=150 \def\pasteupindex{%Nov 1994, cgl %Purpose: %To set index in (balanced) doublecolumn. %The index is preceded by contents of %\preindex and followed by contents of %\postindex. %Input: default index.elm is set % (file specified in \indexfile). %Biased by manmac's \begindoublecolumns \newpage \begingroup\def\space{{\tt\char32 }}% \the\preindex\par \pageheight\vsize \pagewidth\pagewd%anachronism \parindent1em \output={\global\setbox\partialpage= \vbox{\unvbox255\bigskip}}% \eject \output={\bluedoublecolumnout}% \hsize=8.5cm \vsize=51cm%blue.fmt values \parskip0pt plus.8pt\relax \obeylines\everypar{% \hangindent2\parindent}% \let\par\endgraf \let\sub\endgraf \input\the\indexfile\relax %endpasteupindex part biased by %manmac's \enddoublecolumns \output={\balancecolumns}\eject \endgroup \pagegoal=\vsize\the\postindex} %Add an element #1 to toks var #2 \def\add#1to#2{#2\ea{\the#2#1}} %Inner level %IR creation \let\spaceseparator\space %;vrblin=200 \def\makexref{\ifproofmode%Mod cgl oct 94 \bgroup\def\ {\string\ }% \def\process##1{\def##1{\string##1 }}% \ea\ea\ea\fifo\ea\the\ea\conseqs \the\srtkeys\ofif \def\process##1{\def##1{\string##1}}% \ea\fifo\the\consyms\ofif \xdef\writeit{\write\inx{\text{} !\xreftype\spaceseparator \nx\number\pageno.}}\writeit \egroup \else\ifhmode\kern0pt\fi\fi \ifsilent\ignorespaces\else{\next}\fi} %Sorting %;vrblin=250 \def\cmpir#1#2{%#1, #2 defs %Result: \status= 0, 1, 2 if % \val{#1} =, >, < \val{#2} %\immediate\write16{Compared are: *#1* % and *#2*}% \ea\ea\ea\decom\ea#1#2} \def\nxtwindex#1#2{% %Function: %On input: #1 contains the `word' %As result: #2 contains the value % of the first non-ignored token as given % in the ordering table. %#1 contains the rest of the `word' \def\pop##1##2\pop{% \gdef#1{##2}\def\pophead{##1}}%head and tail \ea\pop#1\pop%split in head and tail \ignores\ea\ea\ea{\ea \the\ea\conseqs\the\consyms}% \ea\loc\pophead{\the\ignores}% \iffound\ifx\empty#1 \chardef#2=0 \else\nxtwindex#1#2 \fi \else \ea\loc\pophead{\the\srtkeys}% \iffound\xdef\pophead{\pophead}% \ea\ea\ea\gdef\ea\ea\ea#1\ea\ea\ea {\ea\pophead#1}% \nxtwindex#1#2 \else \ea\let\ea#2\csname ot\pophead\endcsname \fi \fi} \def\otindex{%Parameters: Ordering `table' %Special cases \ea\chardef\csname ot \endcsname=0 \ea\chardef\csname ot\space\endcsname=0 %{|}~(\char126) in ASCII after lowercase %^ active character %Bulk according to ACII \def\process##1{\ea\chardef \csname ot##1\endcsname=`##1 } %lowercase letters \fifo abcdefghijklmnopqrstuvwxyz\ofif \chardef\otij=`y \chardef\otIJ=`y %other characters \fifo !"##$&'()*+,-./0123456789:;<=>?@ []_`\ofif %uppercase letters equal lowercase \def\process##1{\ea\chardef \csname ot##1\endcsname=\lccode`##1 } \uppercase{\fifo abcdefghijklmnopqrstuvwxyz\ofif} %Range reduction %;vrblin=400 \def\redrngtofile#1{%Reduction of \1,...,\n, %with range representation of page numbers \immediate\openout\inx=#1 {\k1\kk0 \ifnum\n>0 \ea\ea\ea\splitwn\csname\the\k\endcsname \let\refer\word \let\nrsrng\empty\prcrng\num\fi \loop\ifnum\k<\n\advance\k1 \ea\ea\ea\splitwn\csname\the\k\endcsname \ifx\refer\word%extend \nrsrng with number \prcrng\num \else%write record to \kk \advance\kk1 \strnrs \immediate\write\inx{\refer\spaceseparator \nrsrng.}% \let\nrsrng\empty\init\num \prcrng\num\let\refer\word \fi \repeat\ifnum1<\n \advance\kk1 \strnrs \immediate\write\inx{\refer\spaceseparator \nrsrng.}% \global\n\kk\fi }\immediate\closeout\inx} %Copying %;vrblin=500 \def\filetoarray#1{%#1 is file name \immediate\openin\inxin=#1\relax \ifeof\inxin\immediate\write16{File #1 empty or non-existent.}% \fi \n\kzero\continuetrue \loop\ifeof\inxin\continuefalse\fi \ifcontinue\advance\n1 \immediate \read\inxin t\ea o\csname\the\n\endcsname %\immediate\write16{k: \number\n: % \csname\the\n\endcsname}% \repeat\advance\n-1 \immediate\closein\inxin} \def\tawfiletofile#1#2{\continuetrue \immediate\openin\inxin=#1\relax \immediate\openout\inx=#2\relax \loop\read\inxin to\IR \ifeof\inxin\continuefalse\fi \ifcontinue\trfandwrite\IR \repeat \immediate\closein\inxin \immediate\closeout\inx \def\setupnxtokens{% \def\process##1{\def##1{\nx##1}}% \ea\ea\ea\fifo\ea\the\ea\conseqs \the\srtkeys\ofif \def\process##1{\def##1{\string##1}}% \ea\fifo\the\consyms\ofif \def\trfandwrite#1{\ea\splitintoks#1% \immediate\write\inx{\nx\noindent \ifcase\digit{\the\indword}\or {\nx\tt\the\indword}\or {\nx\tt\char92\hbox{\the\indword}}\or $\nx\langle\hbox{\the\indword}\nx\rangle $\fi\spaceseparator\pagenrs.}} \def\splitintoks#1 !#2 #3.{\indword{#1}% \chardef\digit=#2\relax\def\pagenrs{#3}} %Typesetting;vrblin=600 \def\bluedoublecolumnout{% %Biased by manmac's doublecolumnout \splittopskip=\topskip \splitmaxdepth=\maxdepth \dimen@=25cm \advance\dimen@ by-\ht\partialpage \setbox0=\vsplit255 to\dimen@ \setbox2=\vsplit255 to\dimen@ \blueonepageout\pagesofar \unvbox255 \penalty\outputpenalty} \def\blueonepageout#1{% %Biased by manmac's \onepageout \shipout\vbox{% \vbox to\baselineskip{\null \the\headline\vss}% \kern2ex \vbox to \pageheight{#1}% \kern1ex \the\footline }\advancepageno} %Auxiliaries;vrblin=700 %SetOfKeys \def\sok#1#2{%Function: %Build from \srtkeykpairs \srtkeys %via \ea\sok\srtkeypairs\kos\relax \ifx#1\kos\kos\fi \srtkeys\ea{\the\srtkeys#1}\sok} \def\kos#1\sok{\fi} \def\sokdef#1#2{%Function: %Build from \srtkeypairs srtkey defs \ifx#1\fedkos\fedkos\fi \def#1{#2}\sokdef} \def\fedkos#1\sokdef{\fi} %;nonum %Table of contents: blue.ind %Variables %Table of contents: blue.ind %Variables % \indexname................8, 19 % \preindex.................9, 20 % \postindex................10, 21 % \indword..................3 % \indexfile................4, 19 % \irfile...................6, 18 % \conseqs..................11, 24-25 % \consyms..................12, 26 % \srtkeys..................13, 30 % \srtkeypairs..............14, 28-29 % \ignores..................15 %User level macros % \sortindex................101-125 % \pasteupindex.............151-183 % \add#1to#2................186 % \setupsrtkeys.............127-129 %Lower level macros %IR Creation % \makexref.................201-214 %Sorting % \cmpir....................251-256 % \nxtwindex................258-282 % \otindex..................284-304 %Range reduction % \redrngtofile.............401-424 %Copying % \filetoarray..............501-512 % \tawfiletofile............514-523 % \trfandwrite..............533-539 % \steupnxtokens............525-531 % \splitintoks..............541-542 %OTR doublecolumns % \bluedoublecolumnout......601-609 % \blueonepageout...........611-620 %Auxiliaries % \sok......................701-705 % \sokdef...................706-711 %History of changes %Nov 1994 Set up. %end%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%index% %begin%%%%%%%%%%%%%%%%%%%%%%%%%%%%gkppic% %From gkpmac (line diagrams) % `Pictures (a subset of \LaTeX's % conventions)' %These macros have been used for typesetting %`Concrete Mathematics,' among others. % cgk@rc.service.rug.nl ;numvrb %\catcode`@=11 % borrow the private macros % % of PLAIN (with care) \newskip\hsssglue \hsssglue=0pt plus 1fill minus 1fill \def\hsss{\hskip\hsssglue} \newdimen\unitlength \newdimen\linethickness \newdimen\@picheight \newdimen\@xdim \newdimen\@ydim \newdimen\@len \newdimen\@save \newcount\@multicount \newcount\@xarg \newcount\@yarg\newbox\@picbox \newbox\@mpbox \font\tenln=line10 \font\tenlnw=linew10 \font\tencirc=lcircle10 \font\tencircw=lcirclew10 \font\smallln=linew10 scaled 483 % magstep-4 \def\thinlines{\let\linefont=\tenln \let\circlefont=\tencirc \linethickness=\fontdimen8\linefont} \def\thicklines{\let\linefont=\tenlnw \let\circlefont=\tencircw \linethickness=\fontdimen8\linefont} \thinlines \def\gkpbeginpicture(#1,#2)(#3,#4){\begingroup \@picheight=#2\unitlength \let\line=\@line \setbox\@picbox=\hbox to#1\unitlength \bgroup\kern-#3\unitlength \lower#4\unitlength\hbox\bgroup \ignorespaces} \def\gkpendpicture{\egroup\hss\egroup \ht\@picbox=\@picheight \dp\@picbox=\z@ \leavevmode\box\@picbox\endgroup} \def\put(#1,#2)#3{\raise#2\unitlength \rlap{\kern#1\unitlength #3}\ignorespaces} \def\multiput(#1,#2)(#3,#4)#5#6{\@multicount =#5\@xdim=#1\unitlength \@ydim=#2\unitlength \setbox\@mpbox=\hbox{#6}% \loop\ifnum\@multicount>0 \raise\@ydim\rlap{\kern\@xdim \unhcopy\@mpbox}% \advance\@xdim#3\unitlength \advance\@ydim#4\unitlength \advance\@multicount\m@ne \repeat\ignorespaces} %makebox is replaced because its reference %point does not coincide with LaTeX's %\def\makebox(#1,#2)#3{\setbox\@picbox= % \hbox to#1\unitlength{\hss#3\hss}% % \advance\@ydim-\dp\@picbox % \ht\@picbox=#2\unitlength % \dp\@picbox=\z@ % \leavevmode\lower.5\@ydim\box\@picbox} \def\makebox(#1,#2)#3{% \hbox to#1\unitlength{\hss \vbox to#2\unitlength{\vss \hbox{#3}\vss}\hss}} %LaTeX's framebox is added \def\framebox(#1,#2)#3{\setbox0= \hbox to#1\unitlength{\hss \vbox to#2\unitlength{\vss \hbox{#3}\vss}\hss}% \makelightbox\kern-\wd0\box0} \newif\ifneg \def\@line(#1,#2)#3{\@xarg=#1 \@yarg=#2 \@len=#3\unitlength \leavevmode \ifnum\@xarg<0 \reverseline \else \negfalse \@ydim=\z@\fi \ifnum\@xarg=0 \@vline \else\ifnum\@yarg=0 \@hline \else\@sline\fi\fi \ifneg\kern-\@len\else\@save=\@ydim\fi} \def\reverseline{\negtrue \kern-\@len \@xarg=-\@xarg \@ydim=\@len \multiply\@ydim\@yarg \divide\@ydim\@xarg \@yarg=-\@yarg} \def\@hline{\vrule height.5\linethickness depth.5\linethickness width\@len} \def\@vline{\kern-.5\linethickness\vrule width\linethickness \ifnum\@yarg<0 height\z@ depth\else depth\z@ height\fi\@len \kern-.5\linethickness} \def\@sline{\setbox\@picbox=\hbox{\linefont \count@=\@xarg \multiply\count@ 8 \ifnum\@yarg>0 \advance\count@\@yarg \advance\count@-9 \else \advance\count@-\@yarg \advance\count@ 55 \fi \immediate\write0{count@=\the\count@}% \char\count@}% \ifnum\@yarg<0 \@picheight=-\ht\@picbox \advance\@ydim\@picheight \else \@picheight=\ht\@picbox \fi \@xdim=\wd\@picbox \@save=\@ydim %\hbox to0pt{\hss$\bullet$\hss}% \loop\ifdim\@xdim<\@len \raise\@ydim\copy\@picbox \advance\@xdim\wd\@picbox \advance\@ydim\@picheight%\immediate %\write0{x, y: \the\@xdim, \the\@ydim}% \repeat \advance\@xdim-\@len \kern-\@xdim \multiply\@xdim\@yarg \divide\@xdim\@xarg \advance\@ydim-\@xdim %Mod cgl June 94 \ifdim\@len<\ht\@picbox \kern\wd\@picbox\else \raise\@ydim\box\@picbox\fi} \def\vector(#1,#2)#3{\@line(#1,#2){#3}% \ifnum\@xarg=0 \@vvector \else\ifnum\@yarg=0 \@hvector \else\@svector\fi\fi} \def\@hvector{\ifneg\rlap{\linefont\char 27}\else\smash{\llap{\linefont\char45}}\fi } % we have to smash because of font bug \def\@vvector{\ifnum\@yarg<0 \raise-\@len\rlap{\linefont\char63}% \else\setbox\@picbox=\rlap{\linefont \char54}\advance\@len-\ht\@picbox \raise\@len\box\@picbox\fi} \def\@svector{\setbox\@picbox=\hbox to\z@{\linefont \ifnum\@yarg<0 \count@=55 \@yarg=-\@yarg \else\count@=-9 \fi \ifneg\multiply\@xarg16 \multiply\@yarg2 \else\hss % \llap \ifnum\@xarg>2 \multiply\@xarg9 \multiply\@yarg2 \advance\count@29 \else\ifnum\@yarg>2 \multiply\@xarg16 \multiply\@yarg9 \advance\count@-20 \else\multiply\@xarg24 \multiply\@yarg3 \fi\fi\fi \advance\count@\@xarg \advance\count@\@yarg \char\count@ \ifneg\hss\fi}% \rlap \raise\@save\box\@picbox} \def\disk#1{\@len=#1\unitlength \count@='160 \@diskcirc} \def\circle#1{\@len=#1\unitlength \count@='140 \@diskcirc} \def\@diskcirc{\setbox\@picbox= \hbox{\circlefont\char\count@}% \@xdim=\wd\@picbox \leavevmode \ifdim\@len>15.499\@xdim \@bigdc \else \@smalldc\fi} \def\@bigdc{\ifnum\count@<'160 \@bigcirc \else \@len=15\@xdim \@diskcirc\fi} \def\@smalldc{{\advance\@len-.5\@xdim \loop\ifdim\@xdim<\@len \advance\count@\@ne \advance\@xdim\wd\@picbox \repeat \hbox{\circlefont\char\count@}}} \def\@bigcirc{{\circlefont\count@=15 \setbox\@picbox=\hbox{\char\count@ }\@xdim=\wd\@picbox \ifdim\@len>2.5\@xdim \@len=2.5\@xdim\fi \advance\@len-.125\wd\@picbox \loop\ifdim\@xdim<\@len \advance\count@4 \advance\@xdim.25\wd\@picbox \repeat \@ydim=.5\@xdim \advance\@ydim.5\linethickness \setbox\@picbox=\vbox{\hbox{\char \count@\advance\count@-3\char\count@}% \nointerlineskip \hbox{\advance\count@\m@ne\char \count@\advance\count@\m@ne \char\count@}}% \kern-\@ydim\lower\@ydim\box\@picbox}} \newif\ifovaltl \newif\ifovaltr \newif\ifovalbl \newif\ifovalbr \ovaltltrue \ovaltrtrue \ovalbltrue \ovalbrtrue \def\oval(#1,#2){\@xdim=#1\unitlength \@ydim=#2\unitlength {\circlefont \setbox\@picbox=\hbox{\char0} \ifdim\@xdim<\wd\@picbox \@xdim=\wd\@picbox\fi \ifdim\@ydim<\wd\@picbox \@ydim=\wd\@picbox\fi \@save=\@xdim \ifdim\@ydim<\@save \@save=\@ydim \fi \count@=39 \loop \setbox\@picbox=\hbox{\char \count@}\ifdim\@save<\wd\@picbox \advance\count@-4 \repeat \setbox\strutbox=\hbox{\vrule height\ht \@picbox depth\dp\@picbox width\z@ \kern\wd\@picbox}% \@save=.5\wd\@picbox \advance\@save-.5\linethickness \setbox0=\hbox to\@xdim{\ifovaltl \char\count@\else\strut\fi \kern-\@save\leaders\hrule height \ifovaltl\linethickness\else\z@\fi \hfil \leaders\hrule height\ifovaltr \linethickness\else\z@\fi \hfil\kern\@save \ifovaltr\advance\count@-3 \char\count@\else\strut\fi \kern-\wd\@picbox}% \advance\count@\m@ne \setbox2=\hbox to\@xdim{\ifovalbl \char\count@\else\strut\fi \kern-\@save\leaders\hrule height \ifovalbl\linethickness\else\z@\fi \hfil \leaders\hrule height \ifovalbr\linethickness\else \z@\fi\hfil\kern\@save \ifovalbr\advance\count@\m@ne \char\count@\else\strut\fi \kern-\wd\@picbox}% \@save=\@ydim \advance\@save-\wd\@picbox \divide\@save 2 \setbox\@picbox=\vbox{\box0 \nointerlineskip \hbox to\@xdim{\vrule height\@save width\ifovaltl\linethickness \else\z@\fi \hfil\ifovaltr\vrule width\linethickness \kern-\linethickness\fi}% \nointerlineskip \hbox to\@xdim{\vrule height\@save width\ifovalbl\linethickness \else\z@\fi \hfil\ifovalbr\vrule width\linethickness \kern-\linethickness\fi}% \nointerlineskip\box2}% \@save=.5\@ydim \advance\@save.5\linethickness \leavevmode \kern-.5\@xdim \kern-.5\linethickness \lower\@save\box\@picbox}} \def\begincpic#1\endcpic{\vcenter{\hbox {\beginpicture#1\endpicture}}} % Squines (quadratic splines) % example of use: to plot f(x) between % x0 and x1, you can say % \put(0,0){\squine(x0,xm,x1,y0,ym,y1)}, % where y0=f(x0), y1=f(x1) % xm=(y0-y1+s1x1-s0x0)/(s1-s0), % ym=(s0(s1x1-y1)-s1(s0x0-y0))/(s1-s0), % s0=f'(x0), and s1=f'(x1). \newdimen\@xi \newdimen\@xii \newdimen\@xiii \newdimen\@xiv \newdimen\@xpt \newdimen\@xoldpt \newdimen\@yi \newdimen\@yii \newdimen\@yiii \newdimen\@yiv \newdimen\@ypt \newdimen\@yoldpt \def\squineelem{.} %\def\squineelem{\tencirc q} \def\squine(#1,#2,#3,#4,#5,#6){\setbox \@picbox\hbox{\squineelem}% \global\@xoldpt=#1\unitlength \global\@yoldpt=#4\unitlength \kern\@xoldpt \@xi=\@xoldpt \@xii=#2\unitlength \@xiii=#3\unitlength \@yi=\@yoldpt \@yii=#5\unitlength \@yiii=#6\unitlength \squinerec \@xpt=#3\unitlength \@ypt=#6\unitlength \@addpoint \raise\@ypt\copy\@picbox} \newif\iffar \def\squinerec{\farfalse \testnear\@xi\@xiii \testnear\@yi\@yiii \iffar \decast \fi} \def\testnear#1#2{\@save=#1\advance \@save-#2% \ifdim\@save<\z@ \@save=-\@save\fi \ifdim\@save>\p@ \fartrue \fi} \def\decast{\@xpt=\@xi \advance\@xpt\@xii \divide\@xpt2 \advance\@xii\@xiii \divide\@xii2 \@xiv=\@xpt \advance\@xiv\@xii \divide\@xiv2 \@ypt=\@yi \advance\@ypt\@yii \divide\@ypt2 \advance\@yii\@yiii \divide\@yii2 \@yiv=\@ypt \advance\@yiv\@yii \divide\@yiv2 \begingroup\@xii=\@xpt \@xiii=\@xiv \@yii=\@ypt \@yiii=\@yiv \squinerec\endgroup \@xpt=\@xiv \@ypt=\@yiv \@addpoint \@xi=\@xiv \@yi=\@yiv \squinerec} \def\@addpoint{% %\message{(\the\@xpt,\the\@ypt)}% \global\advance\@xoldpt-\@xpt \wd\@picbox=-\@xoldpt \raise\@yoldpt\copy\@picbox \global\@xoldpt=\@xpt \global\@yoldpt=\@ypt} %Additions%;vrblin399 \newtoks\xdim \newtoks\ydim \newtoks\xoffset \newtoks\yoffset \newtoks\everypicture \newtoks\thispicture \xoffset{0}\yoffset{0}%defaults \def\beginpicture{\bgroup \the\everypicture\the\thispicture \gkpbeginpicture(\the\xdim,\the\ydim)% (\the\xoffset,\the\yoffset)} \def\endpicture{\gkpendpicture\egroup \global\thispicture{}} %\endinput %;nonum %Contents Picture environm. named %gkppic. cgl@rc.service.rug.nl %Dimensions % \unitlength......................7 % \linethickness...................8 % \@picheight......................9 % \@xdim, \@ydim................9-10 % \@xarg, \@yarg, \@len........10-12 % \@save..........................10 % \@picbox........................12 % \@mpbox.........................12 % \@xi, \@xii, \@xiii, \@xiv.270-271 % \@xpt, \@xoldpt................272 % \@yi, \@yii, \@yiii, \@yiv.273-274 % \@ypt, \@yoldpt................275 %Newifs % \ifneg..........................70 % \ifovaltl, \ifovaltr...........185 % \ifovalbl, \ifovalbr...........186 % \iffar.........................297 %Fonts % \tenln, \tenlnw.................14 % \tencirc, \tencircw..........15-16 % \smallln........................17 %Size switching % \thinlines, \thicklines......19-25 %Picture environment % \beginpicture % (and \line in there)......27-32 % \endpicture..................33-35 % \begincpic, \endcpic.......258-259 % \put.........................37-38 % \multiput....................40-49 %Picture elements % \makebox.....................59-62 % \framebox....................64-68 % \@line.......................71-78 % \reverseline.................79-82 % \@hline......................84-85 % \@vline......................86-90 % \@sline.....................92-115 % \vector....................117-120 % \@hvector..................121-123 % \@vvector..................124-128 % \@svector..................130-147 % \disk......................149-150 % \circle....................151-152 % \@diskcirc.................153-157 % \@bigdc....................158-159 % \@smalldc..................160-165 % \@bigcirc..................166-183 % \oval......................189-256 %Curves % \squineelem................276-277 % \squine....................278-293 % \squinerec.................295-297 % \testnear..................298-301 % \decast....................302-320 % \@addpoint.................321-327 %Additions, compatible blue.fmt conventions %Newtoks % \xdim, \ydim, % \xoffset, \yoffset.........400-401 %\everypicture, \thispicture..402-403 %\beginpicture................406-409 %\endpicture..................410-411 %History of changes %Jun 94 Extensions added for compati- % bility with blue.fmt. % \makebox adapted to LaTeX. % \framebox added. % \@sline adapted for case % \@len less then \ht\@picbox % (suppress line % element but kern conditionally.) % The `dot' element in \squine has % been parameterized and initialized % differently. %end%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%gkppic% %%%%%%%%% Amy's Diagonal line %%%%%%%%%% \newif\ifminuswd \newif\ifminusht \newbox\dotwide \newbox\dotbox \newdimen\savehtofdiagline \newdimen\htofdiagline \newdimen\wdofdiagline \newdimen\dotmove \newdimen\newsaveht \newdimen\savewdofdiagline \def\diagline #1 #2 wd #3 ht{% %#1 dot, e.g. . %#2 width in units, eg 2ex %#3 height in units, eg 3ex %Amy Hendrickson, TB6#2, 1985 %Comment: Line thickness varies over %the direction, nearly verticals go wrong. \global\setbox\dotwide=\hbox{#1}% \global\setbox\dotbox= \hbox to0pt{\hss#1\hss}% \global\wdofdiagline=#2\relax% \ifdim\wdofdiagline<1sp \global\minuswdtrue \global\advance\wdofdiagline by-2\wdofdiagline \else\global\minuswdfalse%Robustness \fi% turn neg dim to positive \global\htofdiagline=#3\relax% \ifdim\htofdiagline<1sp \global\advance\htofdiagline by-2\htofdiagline\global\minushttrue \else\global\minushtfalse%Robustness \global\dotmove=1pt%% \setbox1=\hbox{% \global\divide\htofdiagline by\the\wdofdiagline\relax}% \ifminuswd\rlap\bgroup% \else\bgroup\fi% \loop\ifdim\htofdiagline>.4pt%CGL mod \global\divide\htofdiagline by2% \global\divide\dotmove by2\repeat% \global\savehtofdiagline=\htofdiagline% \loop\ifdim\wdofdiagline>0pt% \hskip\ifminuswd-\dotmove% \else\dotmove\fi% \ifminusht\lower\else\raise\fi% \htofdiagline\copy\dotbox% \global\advance\htofdiagline by\savehtofdiagline% \global\advance\wdofdiagline by-\dotmove\repeat% \egroup% }% end diagonal line \def\amyicurt#1#2{%IConUpperRightTriangle %#1 is ht of icon matrix, %with UT the upper triangular part, e.g. 4ex %#2 is wd of icon (upper triangular) %matrix, e.g. 2ex \vbox to #1{\hrule \hbox{\diagline . #2 wd -#2 ht\vrule}% \vfil}% }%end amyicurt %endamy's diagline%%%%%%%%%%%%%%%%%%%%%%% %begin%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%trs% %trs.tex from BLUe's Transparencies % cgl@rc.service.rug.nl %Purpose: Preparing transparencies from % TeX marked up copy. % ;numvrb %;numvrb %New toks \newtoks\identification \newtoks\crowner \newtoks\headtitle \newtoks\subheadtitle \newtoks\subsubheadtitle %New glues \newskip\leftskiptrs \leftskiptrs.2\hsize\relax \newskip\rightskiptrs \rightskiptrs.1\hsize\relax %;vrblin100 \def\transparencies{\onecol \font\titlefont=cmr12 scaled1440\relax \font\subheadfont=cmr12 scaled1200\relax \font\subsubheadfont=cmr12 \relax \let\headfont\subheadfont\font\ffont=cmr7\relax \let\authorfont\subsubheadfont \magnification1728 %2074 \def\large{\subheadfont\baselineskip3.25ex} \let\small\eightpoint \hsize=17.5truecm \vsize=19truecm \hoffset-1truecm \voffset3.5truecm \pagewd=\hsize %Mark up title transparency;vrblin150 \def\begincontents{\global\setbox \contentsbox\vbox\bgroup \leftskip1.5\leftskiptrs \large\baselineskip3.5ex \everypar{$\bullet$\enspace} \obeylines} \def\endcontents{\egroup} %;vrblin175 \def\beginscript{\begincenter\bgroup \footline={}\headline={} \message{\the\title} \the\everyscript\the\thisscript {\titlefont\the\title} \smallskip {\the\subtitle}\bigskip {\authorfont\the\author} \smallskip\the\address \bigskip$$\box\contentsbox$$} \def\endscript{\nxttrs\endcenter\end} %Mark up regular transparencies;vrblin200 \prehead{\nxttrs\egroup\pageno1 \prehead{\nxttrs}} \posthead{\medskip} \def\beginhead##1\endhead{\the\prehead \headtitle{##1}\subheadtitle{} \subsubheadtitle{}{\headfont##1} \the\posthead} \def\head##1{\beginhead##1\endhead} % ;vrblin230 \presubhead{\medbreak} \postsubhead{\smallskip\nobreak} \def\beginsubhead##1\endsubhead{% \subheadtitle{##1}\subsubheadtitle{}% \the\presubhead{\subheadfont##1} \the\postsubhead} \def\subhead##1{\beginsubhead##1\endsubhead} % ;vrblin260 \presubsubhead{\smallbreak} \postsubsubhead{\smallskip\nobreak} \def\beginsubsubhead##1\endsubsubhead{% \subsubheadtitle{##1} \the\presubsubhead{\subsubheadfont##1}% \the\postsubsubhead} \def\subsubhead##1{% \beginsubsubhead##1\endsubsubhead} %;vrblin300 \preverbatim{\leftskip\leftskiptrs \rightskip0pt plus1fil\relax} %;vrblin330 \def\bitem{\bgroup\leftskip\leftskiptrs \rightskip0pt plus1fil\relax \def\bitem{\item{$\bullet$}} \def\smallbreak{\endgraf\egroup \smallbreak} \let\smallskip\smallbreak \bitem} %;vrblin350 \let\bgnsyn\beginsyntax \def\beginsyntax{\bgroup \leftskip\leftskiptrs \rightskip0pt plus 1fil\relax\bgnsyn} \let\endsyn\endsyntax \def\endsyntax{\endsyn\egroup} %Header and footer ;vrblin400 \headline={\line{\vbox to0pt{\vss \centerline{\titlefont\strut\the\title} \vskip2ex \line{\logo\hfill\vbox{% \llap{\strut\the\headtitle} \llap{\strut\the\subheadtitle} \llap{\strut\the\subsubheadtitle}}} \vskip1ex \hrule width\hsize height1pt }}%end hbox }%end headline % ;vrblin450 \footline={\vbox to 0pt{% \leftskip0pt\rightskip0pt\relax \hrule width\hsize height1pt \vskip.5ex \hbox to\hsize{% \rlap{\small\the\identification}% \small\hfil--\the\pagenumber--\hfil \llap{\small\copyright\the\crowner}% }\vss}%end vbox }%end footline \identification{\today} %Auxiliaries ;vrblin500 \def\nxttrs{\vfil\eject} \def\continue{\vfil \rightline{\dots continued}\eject} %;vrblin550 \def\begincenter{\bgroup\smallskip \leftskip0pt plus1fil \rightskip0pt plus1fil \parfillskip0pt\obeylines} \let\endcenter\egroup \def\center##{\begincenter\bgroup \aftergroup\endcenter \afterassignment\ignorespaces \let\dummy=} %Personalisation and defaults;vrblin600 \crowner{cgl} \author{Kees van der Laan} \address{% \centerline{Hunzeweg 57, 9893PB, Garnwerd} \centerline{The Netherlands, 31 5941 1525} \centerline{cgl@rc.service.rug.nl} \font\calx=cmsy10 scaled \magstep2 \def\logo{\vbox to 0pt{\vss \rlap{{\calx N}ederlandstalige} \rlap{\hskip1em{\calx T}\kern-.2ex \raise-.5ex\hbox{E}\kern.1exX} \rlap{\hskip2em{\calx G}ebruikersgroep}% \pagenumber{\folio} \overfullrule0pt\parindent0pt %;vrblin998 }%end transparencies %;nonum %Contents trs.tex cgl@rc.service.rug.nl %Fonts % \titlefont...................102 % \subheadfont.................103 % \subsubheadfont..............104 % \large.......................107 % \small.......................108 %Newtoks % \identification................2 % \crowner.......................3 % \headtitle.....................4 % \subheadtitle..................5 % \subsubheadtitle...............6 %Newskips % \leftskiptrs, \rightskiptrs..8-11 %The transparency format % \transparencies............101-999 %Page size % \hsize, \vsize...............109 % offsets......................110 % \pagewd......................111 %Markup title % \begincontents...........151-156 % \endcontents.................157 % \beginscript.............176-185 % \endscript...................186 %Markup regular transparencies % \prehead.................201-202 % \beginhead\endhead.......205-208 % \head........................210 % \posthead....................203 % \presubhead..................231 % \beginsubhead\endsubhead.234-237 % \subhead.....................239 % \postsubhead.................232 % \presubsubhead...............261 % \beginsubsubhead % \endsubsubhead......264-268 % \subsubhead..................270 % \postsubsubhead..............262 % \preverbatim.............301-302 % \bitem...................331-337 % \beginsyntax.............352-354 % \endsyntax...................356 %Header and footer % \headline................401-411 % \footline................451-460 % \identification..............462 %Auxiliaries % \nxttrs......................501 % \continue................502-503 % \begincenter.............551-554 % \endcenter...................555 % \center..................556-559 %Personalisation % \crowner.....................601 % \author......................602 % \address.................603-607 % \calx........................608 % \logo....................609-614 % \pagenumber..................615 %History of changes %Aug 1994 Centering markup automated %Jul 1994 \contentsbox is used % \pagenumber introduced %Jun 1994 More consistent with % blue.fmt. % \small is \eightpoint. % \begincontents...\endcontents %Feb 1994 Release Version 1.0 %Example of use %\title{Manmac BLUes} %\subtitle={---how to typeset a book % via \TeX---} %\contents{ %User's guide %Coding %\beginscript %\head{Why?} %To return to the roots... %\head{User's Guide} %Relative numbering %\pagenumber{U\folio}\pageno=1 %... %\nxttrs %Next transparency %\subsubhead{Markup paragraphs} %\continue%Continuation on next slide %\head{Conclusions} %\pagenumber{--x--} %\bitem... %\vfil %\rightline{\vtop{\hbox{Thank you} % \hbox{\cs{bye}}}} %\endscript %end%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%trs% %begin%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%crs% %From Typesetting crosswords via TeX %EuroTeX 92, MAPS 92.1 %NOTE In order to use natural input, %spaces except for the last one, and not %let this choice for !] (space=\relax) %work through globally, start with %\bgroup\obeyspaces\let =\relax %\bdata % %\edata %$$\crw$$%(or \sol) %\egroup %;numvrb \newif\ifpuzzle \newcount\cnt \puzzletrue \newdimen\csize\csize=3ex % %;vrblin=99 \def\bdata{\bgroup\obeylines\obeyspaces% \store} \def\store#1\edata{\egroup\def\data{#1}} %{\obeyspaces\global\let =\relax} \def\usersize{} % %;vrblin=199 {\catcode`\^=7 \catcode`\^^M=13 %local scope \gdef\crw{\cnt=0\relax\boxit{\usersize% \hrule\ea\fifol\data\lofif^^M}} \gdef\sol{\boxit{\def\num{}\puzzlefalse% \usersize\hrule\ea\fifol\data\lofif^^M}} \gdef\fifol#1^^M{\ifx\lofif#1\lofif\fi% \processl{#1}\fifol}}%end local scope% % %;vrblin=299 \def\lofif#1\fifol{\fi} \def\processl#1{\hbox{\fifo#1\ofif}\hrule} \def\fifo#1{\ifx\ofif#1\ofif\fi% \process#1\fifo} \def\ofif#1\fifo{\fi} \def\process#1{\if*#1\cc\else% \ifx\relax#1\cc\else% \ifnum`#1=\uccode`#1\capchar#1\else% \lowchar#1\fi\fi\fi} \def\lowchar#1{\hbox to\csize{\vrule height.8\csize depth.2\csize\relax% \ifpuzzle\null\else\hss\uppercase{#1}% \fi\hss\vrule}} \def\capchar#1{\hbox to\csize{\vrule height.8\csize depth.2\csize\relax% \num\ifpuzzle\null\else\hss#1\fi% \hss\vrule}} \def\cc{\vrule height.8\csize depth% .2\csize width\csize} \def\num{\global\advance\cnt1\relax% \vbox to.8\csize{\rlap{\kern1pt% \fiverm\the\cnt\hss}\vfil}}% % %;vrblin=399 \def\boxit#1{\vbox{\hrule\hbox{\vrule% \vbox{#1}\vrule}\hrule}}% cgl, oct92 %;nonum %Contents %\newif % \ifpuzzle.......................1 %\newcount % \cnt............................2 %\newdimen % \csize..........................3 %Data % \bdata........................100 % \store........................102 % \edata........................102 % \usersize.....................104 % \crw..........................201 % \sol..........................203 %Auxiliary % \fifol........................205 % \process, \processl......305, 301 % \lofif........................300 % \lowchar......................309 % \capchar......................313 % \cc...........................317 % \num..........................320 % \boxit........................400 %History of changes %July 1994 Incorporated in blue.fmt % and \global\let =\relax % removed. %Jan 1994 Submitted CTAN %1992 Submitted to EuroTeX and MAPS %end%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%crs% %begin%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%brd% %Typesetting bridge publications %via (plain) TeX. Version May 92. %The macros can als be used within LaTeX. %Version: 1.1 March 1994 (basically %unmodified since publication in 1990) %Author: Kees van der Laan % Hunzeweg 57, 9893PB, Garnwerd (Gr) % The Netherlands. 05941-1525, % cgl@rc.service.rug.nl %Examples of use have been published in %TUGboat, 11, 2, 265--276, and MAPS 91.2. %(A few are appended at the end.) %The macros consists of 3 indep. parts: %- dec.tex ((language) declarations, % used register and % control sequences) %- bid.tex (macros for bidding and % layout of games) %- play.tex (macros for discussing the % course of a play) % %;numvrb %%%%%%%dec.tex%%%%%%% %Card definitions \def\sp{$\spadesuit$} \def\h{$\heartsuit$} \def\d{$\diamondsuit$} \def\cl{$\clubsuit$} %(Toks register) control sequences %for hands used by play macros: %showgame, pc, strip \let\NT\newtoks \NT\hnd%Dynamically one of: \NT\Ns\NT\Es\NT\Ss\NT\Ws \NT\Nh\NT\Eh\NT\Sh\NT\Wh \NT\Nd\NT\Ed\NT\Sd \NT\Wd %Beware! Already %in TUGboat.sty in lower case \NT\Nc\NT\Ec\NT\Sc\NT\Wc \def\english{ %In central figure NESW \def\N{N}\def\E{E}\def\S{S}\def\W{W} %In heading bplay \def\NS{NS}\def\EW{EW} \def\TRICK{Trick} %Definition of hands %used by bbid \def\FIH{North}\def\SEH{East} \def\THH{South}\def\FOH{West} }% end \english \english%default \def\LEADN{\gdef\FIP{N}\gdef\SEP{E}% \gdef\THP{S}\gdef\FOP{W}} \def\LEADE{\gdef\FIP{E}\gdef\SEP{S}% \gdef\THP{W}\gdef\FOP{N}} \def\LEADS{\gdef\FIP{S}\gdef\SEP{W}% \gdef\THP{N}\gdef\FOP{E}} \def\LEADW{\gdef\FIP{W}\gdef\SEP{N}% \gdef\THP{E}\gdef\FOP{S}} %Definition of counters %used by bplay \newcount\trno%trick number %Definition of dimensions %used in bbid \newdimen\wr %width column \wr=7ex \relax \def\bidwidth{4\wr} %used in crdima \newbox\NESW \def\dutch{ \def\FIH{Noord}\def\SEH{Oost} \def\THH{Zuid}\def\FOH{West} \def\N{N}\def\E{O}\def\S{Z} \def\W{W}\def\EW{OW}\def\NS{NZ} \def\TRICK{Slag} \setbox\NESW\hbox{\NESWfig} }%end \dutch \def\french{ \def\FIH{Nord}\def\SEH{Est} \def\THH{Sud}\def\FOH{Ouest} \def\N{N}\def\E{E}\def\S{S} \def\W{O}\def\EW{EO}\def\NS{NS} \def\TRICK{Lev\'ee} \setbox\NESW\hbox{\NESWfig} }%end \french %end input dec.tex %%%%%%%bid.tex%%%%%%% %Modified central figure \def\hand#1#2#3#4{% %Example: \hand{AKJ765}{AK9}{--}{T983} \vtop{\hbox{\strut\sp\enspace#1} \hbox{\strut\h\enspace#2} \hbox{\strut\d\enspace#3} \hbox{\strut\cl\enspace#4}}%end \vtop }%end \hand \def\crdima#1#2#3#4#5#6{% %purpose: layout bridge hand %#1 left upper text %#2 right upper text %#3, #4, #5, #6: N, E, S, W hands \vbox{\halign{ &##\quad\cr #1& #3& #2\cr $\vcenter{#6}$&$\vcenter{\copy\NESW}$& $\vcenter{#4}$\cr & #5& \cr }%end \halign }%end \vbox }%end \crdima \def\NESWfig{% \hbox{\vrule \vbox{\offinterlineskip\tabskip0pt \hrule\kern.25ex\halign{\hskip.5ex ##\tabskip.5ex&\hfil##\hfil& ##\hskip.5ex \tabskip0pt\cr \noalign{\vskip.5ex} &\hbox to 2ex{\hss\N\hss}& \cr \noalign{\vskip.25ex} \kern.25ex\W& &\E\kern.25ex \cr\noalign{\vskip.25ex} &\hbox to 2ex{\hss\S\hss}& \cr \noalign{\vskip.5ex} }%end \halign \kern.25ex\hrule}%end \vbox \vrule}%end \hbox }% end \NESWfig \setbox\NESW\hbox{\NESWfig} \def\ebid{\errormessage{% bbid command is missing}} \def\bbid{\bgroup% \def\ebid{\egroup\egroup\egroup} \def\alert{$^A$} \def\think{$\ldots$\thinspace} % etc. \vtop\bgroup \halign to\bidwidth\bgroup \tabskip2ex plus 1ex minus 1ex& ##\hfil\cr \FIH\hfil& \SEH\hfil& \THH\hfil&\FOH\hfil\cr \noalign{\vskip.5ex} }%end \bbid %end input bid.tex% %%%%%%%play.tex%%%%%%% %\input{play.tex} %Modified 11/11/91 Central table %\bplay etc % bplay, showgame, pc, strip \def\eplay{\errormessage{% bplay command is missing}} \def\bplay{\bgroup\global\trno=0 \def\eplay{\egroup\egroup} \def\bintermezzo{\noalign\bgroup \smallskip\noindent} \def\eintermezzo{\smallskip\egroup} \tabskip1ex plus 1fill \halign to\hsize\bgroup \tabskip1ex plus 1ex minus 1ex \global\advance\trno by 1 % \hbox to.5\wr{\hss\the\trno\hss}%<=! \hbox to\wr{\pc\FIP##\hss}\hfil& \hbox to\wr{\pc\SEP##\hss}\hfil& \hbox to\wr{\pc\THP##\hss}\hfil& \hbox to\wr{\pc\FOP##\hss}\hfil \tabskip4ex plus2ex minus1ex& \hbox to.5\wr{\hss##\hss} \tabskip1ex plus 1ex minus 1ex& \hbox to.5\wr{\hss##\hss} \tabskip1ex plus 1fill\cr %End template line, next is headline \omit\hbox to1\wr{\TRICK\hss}\hfil& \omit\hfil&\omit\hfil&\omit\hfil& %Note only 3 \omits \NS&\EW\cr%Headline }% end \bplay \def\pc#1#2#3{% Version 3/3/90 %Function: prints card #2#3 and % deletes it from player #1 %#1 the hand N, E, S, W(uppercase) %#2 colour s, h, d, or c %#3 card value A K Q ... 2, or x %(or your (consistent/language) choice) %%%% 1. Update hand \#1#2; e.g. \Ns %%% \xdef\hnd{\csname #1#2\endcsname} \strip{#3}{\hnd}% %%%% 2. print card in table %%% \xdef\colour{\csname #2\if#2cl\else \if#2sp\fi\fi\endcsname} \colour\thinspace #3% % %Needed for immediate postfix mark(s) }% end \pc \def\strip#1#2{% Version 3/3/90 %Function: deletes card value #1 % from #2, i.e., \Ns, or ... \def\wis##1#1##2\wis{% %Function: #1 is deleted from argument % in \wis ... \wis and result % is assigned to \hnd % (last card is replaced by --) \global\hnd={##1##2} \xdef\pa{##1} \xdef\pb{##2} \ifx\pa\empty {\ifx\pb\empty \global\hnd={--}% void colour \fi}\fi }% end \wis \expandafter\wis\the #2\wis }% end \strip \def\showgame{ %Purpose: Shows all cards still active % in the play, via \Ns, ..., \Wc, % (note use of upper case for players) %Used: \crdima, \hand, \LFTINF, \RGTINF % \Ns, ..., \Wc $$\crdima{\LFTINF}{\RGTINF}% {\hand{\the\Ns}{\the\Nh}{\the\Nd}% {\the\Nc}}% {\hand{\the\Es}{\the\Eh}{\the\Ed}% {\the\Ec}}% {\hand{\the\Ss}{\the\Sh}{\the\Sd}% {\the\Sc}}% {\hand{\the\Ws}{\the\Wh}{\the\Wd}% {\the\Wc}}% $$}% end \showgame %end input play.tex % In total: 215 lines %Examples: diagram, bidding, course of play. %\hsize=.5\hsize %1. Diagram %$$\crdima{N/None}{\vtop{\hbox{Deal:} % \hbox{demo}}}% % {\hand{J74}{AJ}{QJT2}{Q874}}%N % {\hand{K86}{T9542}{874}{T3}}%E % {\hand{QT952}{Q83}{AK5}{A6}}%S % {\hand{A3}{K76}{963}{KJ952}}%W %2. Bidding %$$\bbid %1\cl\alert& ? no& 1\sp&\think no\cr % 2\sp& no& 4\sp& a.p.\cr %\noalign{\vskip.5ex} %\alert\ means Alert, % conventional bid\hidewidth\cr %? means explanation % asked\hidewidth\cr %\think means think %% pause\hidewidth\cr %\ebid $$ %3. Course of play %\def\LFTINF{Puzzle} %\def\RGTINF{\vtop{\hbox{6NT,} % \hbox{by East}}} %\Ns={KQ76}\Es={T9}\Ss={8542}\Ws={AJ3} %\Nh={J98} \Eh={A2}\Sh={QT74}\Wh={K653} %\Nd={J942}\Ed={T5}\Sd={Q876}\Wd={AK3} %\Nc={65}\Ec={KJ9xxxx}\Sc={2}\Wc={AQT} %\showgame %*Problem* How must NS defend in %order to guarantee 1 trick? %*Solution* Start with a \h\ %lead in order to break communication. %N must discard \h s %and S must discard \sp s. %\smallskip\noindent %\LEADS %\bplay %%\noalign{\LEADS} %h4! & hK & h8 & h2 & -- & 1\LEADW\cr %%\noalign{\LEADW} %cA & c5 & cx & c2 & -- & 2\cr %cQ & c6 & cx & s2 & -- & 3\cr %cT & h9 & cK & s4 & -- & 4\LEADE\cr %%\noalign{\LEADE} %cJ & s5 & s3 & s6 & -- & 5\cr %c9 & s8 & h5 & s7 & -- & 6\cr %cx & d6 & sJ & d2 & -- & 7\cr %\bintermezzo %On lead of the next \cl\ %neither South nor North can be %squeezed as can be seen from% %\def\RGTINF{\vtop{\hbox{NS squeezed on} % \hbox{\c\ continuation?}}} %\showgame %with continuation %\eintermezzo %cx & h7 & h6 & hJ & -- & 8\cr %dT & d7 & dA & d4 & -- & 9\LEADW\cr %%\noalign{\LEADW} %dK & d9 & d5 & d8 & -- & 10\cr %h3 & dJ & hA & hT & -- & 11\LEADE\cr %\noalign{\LEADE} %sT & hQ & sA & sQ & -- & 12\LEADW\cr %\noalign{\LEADW} %d3 & sK & s9 & dQ & 1 & 12\cr %\eplay %\bye %;nonum %%%Contents %Declarations. % Newtoks, \NT alias.............10 % \hnd, \Ns, \Es, \Ss, \Ws....12 % \Nh, \Eh, \Sh, \Wh....13 % \Nd, \Ed, \Sd, \Wd....14 % \Nc, \Ec, \Sc, \Wc....17 % \english....................19-30 % \dutch......................51-58 % \french.....................60-67 % \N, \E, \S, \W..............21 % \NS, \EW....................23 % \TRICK......................24 % \FIH, \SEH, \THH, \FOH...27-28 % \sp, \h, \cl, \d..............3-6 % \LEADN \LEADE \LEADS \LEADW 32-38 % Newcount % \trno.......................42 % Newdimen % \wr.........................46 % \bidwidth{4\wr}.............47 % Newbox % \NESW...................49, 111 % \hand........................72-78 % \crdima......................80-92 % \bbid, \ebid......116-127, 113-114 % \alert.......................118 % \think.......................119 %%%%%%%play.tex%%%%%%% % \bplay, \eplay....138-162, 135-136 % \bintermezzo, \eintermezzo 140-142 % \pc........................164-178 % \hnd.........................172 % \colour......................175 % \strip.....................182-196 % \showgame..................198-213 % Examples % diagram..................219-226 % bidding..................227-238 % course of play...........239-289 %History of changes %July 1994 \c and \s changed into % \cl and \sp, % \colour adapted %March 1994 Prepared for NTG's CD-ROM % Examples of use added % NESW figure adapted %Jan 1994 Submitted to CTAN. %\catcode`\@=12 \endinput \global\advance\count0-1 \dump